哪些字符需要'\'才能从文本中删除?
像这样:
import re
my_source = re.sub('\(','',my_source)
答案 0 :(得分:4)
特殊字符(.
,?
,(
,)
,...)应该转义为字面匹配:
您可以在here - Regular Expression Syntax找到特殊字符。
但你不需要自己动手。您可以使用re.escape
:
>>> import re
>>> re.escape('(')
'\\('
>>> print(re.escape('('))
\(
答案 1 :(得分:2)
由于你的问题似乎只是想从字符串中删除某些字符,所以根本不需要使用正则表达式。在python中执行此操作的最简单方法是使用字符串对象的replace
方法:
>>> my_source = 'Hello, world!'
>>> my_source.replace(", world", "")
'Hello!'
如果你有一个要从输入中删除的字符串列表,你可以这样做:
>>> my_source = 'ABCDEFG_HI(JKLM).NOP'
>>> deletions = ('_', '(', ')', 'EF', 'O')
>>> for deletion in deletions:
... my_source = my_source.replace(deletion, "")
...
>>> my_source
'ABCDGHIJKLM.NP'
答案 2 :(得分:1)
哪些字符需要'\'才能从文本中删除?
您必须且不得逃避的字符取决于您正在使用的正则表达式指示。
在大多数情况下,以下是需要在字符类[]
之外转义的字符:
.^$*+?()[{\|
字符^-]\
需要在字符类中转义。并不总是需要在字符类中转义-
,但对我而言,这样做更安全。
但请注意,我说这取决于您正在使用的正则表达式。
使用re.sub()
替换字符串中的(
和)
..
oldStr = '(foo) bar (baz)'
print re.sub(r'[()]+', '', oldStr)
输出:
foo bar baz
使用re.search()
我们正在使用re.search
查找字符串中第一个(
和)
之间的文字。我们逃离(
下一次使用正则表达式捕获组([a-zA-Z]+)
寻找单词字符,以)
结尾
m = re.search('\(([a-zA-Z]+)\)', oldStr)
print m.group(1) #prints 'foo'
使用re.findall()
m = re.findall(r'\(([a-zA-Z]+)\)', oldStr)
print ", " . join(m)
# prints `foo, baz`