哪些字符需要在它们之前从文本中删除?
像这样 :
import re
my_source = re.sub('\(','',my_source)
由于从您的问题看来您只想从字符串中删除某些字符,因此您甚至根本不需要使用正则表达式。在 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'
哪些字符需要在它们之前从文本中删除?
您必须转义和不得转义的字符取决于您正在使用的正则表达式指示。
在大多数情况下,以下是需要在字符类之外转义的字符[]
:
.^$*+?()[{\|
并且字符^-]\
需要在字符类中转义。并不总是需要-
在字符类中转义,但对我来说这样做更安全。
但请注意,正如我所说,这确实取决于您正在使用的正则表达式指示。
使用示例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`