如何在Python中使用re-module删除()

2024-04-25 19:46:10 发布

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

我在处理XML文本时遇到了麻烦。 我想从我的文本中删除(),如下所示:

<b>(apa-bhari(n))</b>到{}

下面的代码

name= re.sub('<b>\((.+)\)</b>','<b>\1</b>',name)

但这只能是回报

^{pr2}$

我不懂转义序列和反向引用。请告诉我解决办法。在


Tags: 代码name文本rexml转义序列apapr2
3条回答

如果后跟数字,则需要转义Python字符串中的反斜杠;以下表达式均为真:

assert '\1' == '\x01'
assert len('\\1') == 2
assert '\)' == '\\)'

所以,你的代码应该是

^{pr2}$

或者,使用正则表达式字符串定义:

name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>',name)

尝试:

name= re.sub('<b>\((.+)\)</b>','<b>\\1</b>',name)

或者,如果您不希望在使用反斜杠的任何地方都有\\的不可识别代码,请不要手动转义反斜杠,而是在字符串前添加一个r,例如:r"myString\"与{}相同。在

您需要使用raw strings,或转义斜杠:

name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>', name)

相关问题 更多 >