我在处理XML文本方面遇到了麻烦。 我想从我的文本中删除(),如下所示:
从<b>(apa-bhari(n))</b>
到<b>apa-bhari(n)</b>
以下代码
name= re.sub('<b>\((.+)\)</b>','<b>\1</b>',name)
但这只能返回
<b></b>
我不了解转义序列和反向引用。请告诉我解决方案。
答案 0 :(得分:2)
你需要使用raw strings,或者逃避斜杠:
name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>', name)
答案 1 :(得分:1)
如果后跟一个数字,你需要在Python字符串中转义反斜杠;以下表达式都是正确的:
assert '\1' == '\x01'
assert len('\\1') == 2
assert '\)' == '\\)'
所以,你的代码将是
name = re.sub('<b>\\((.+)\\)</b>','<b>\\1</b>',name)
或者,使用正则表达式字符串定义:
name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>',name)
答案 2 :(得分:1)
尝试:
name= re.sub('<b>\((.+)\)</b>','<b>\\1</b>',name)
或者如果您不希望在使用反斜杠的地方有\\
的错误代码,请不要手动转义反斜杠,而是在字符串之前添加r
,例如:{{1} }与r"myString\"
相同。