某些字符需要在其前面使用“\”来表示d

2024-04-26 20:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

从文本中删除哪些字符之前需要“\”?
像这样:

import re
my_source = re.sub('\(','',my_source)

Tags: 文本importresourcemy字符
3条回答

因为从你的问题看来,你只是想删除字符串中的某些字符,你甚至不需要使用正则表达式。在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'

Which characters need '\' before them to delete from a text ?

必须转义和不能转义的字符取决于使用的正则表达式指示。你知道吗

在大多数情况下,以下是需要在字符类之外转义的字符[]是:

.^$*+?()[{\|

字符^-]\需要在字符类中转义。并不总是需要在字符类中转义-,但对我来说,这样做更安全。你知道吗

但请注意,正如我所说的,这确实取决于您正在使用的regex指示。你知道吗

使用re.sub()的示例

替换字符串中的()。。你知道吗

oldStr = '(foo) bar (baz)'
print re.sub(r'[()]+', '', oldStr)

输出:

foo bar baz

使用re.search()的示例

我们使用re.search来查找字符串中第一个()之间的文本。我们转义(,然后使用regex捕获组([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`

特殊字符(.?(),…)应转义以匹配字面:

可以从here - Regular Expression Syntax中找到特殊字符。你知道吗

但你不需要自己动手。您可以使用^{}

>>> import re
>>> re.escape('(')
'\\('
>>> print(re.escape('('))
\(

相关问题 更多 >