我试图过滤一些文本与不需要的字符之间的文本。下面是我要筛选的示例文本。你知道吗
*CHI:\t<that> [/] (.) that (i)s it . [+ bch]\n
尝试:
import re
s = '*CHI:\t<that> [/] (.) that (i)s it . [+ bch]\n'
s = re.sub('[()]','',s)
print(s)
我的输出是
*CHI: <that> [/] . that is it . [+ bch]
我想保留(.),但要过滤I之间的括号,即将(I)改为I。同时我想保留[/]并删除[+bch]。如何过滤一个并保留另一个?你知道吗
一种同时适用于两个Python版本的方法是
参见regex demo
细节
\((?!\.\))
-一种不紧跟在.)
后面的(
|
-或(?<!\(\.)\)
-a)
前面不紧跟(.
。你知道吗作为替代方案,您可以在捕获组中添加异常作为替代方案,并替换为backreference(Python 3.5+)或lambda表达式(早期版本):
参见Python 3.5 demo和this Python 2.x demo。你知道吗
可以使用排除
.
的字符类:有了这个变化,
s
将变成:相关问题 更多 >
编程相关推荐