我在处理 XML 文本时遇到了麻烦。我想从我的文本中删除 () 如下:
从<b>(apa-bhari(n))</b>
到<b>apa-bhari(n)</b>
制作了以下代码
name= re.sub('<b>\((.+)\)</b>','<b>\1</b>',name)
但这只能返回
<b></b>
我不明白转义序列和反向引用。请告诉我解决方案。
我在处理 XML 文本时遇到了麻烦。我想从我的文本中删除 () 如下:
从<b>(apa-bhari(n))</b>
到<b>apa-bhari(n)</b>
制作了以下代码
name= re.sub('<b>\((.+)\)</b>','<b>\1</b>',name)
但这只能返回
<b></b>
我不明白转义序列和反向引用。请告诉我解决方案。
您需要使用原始字符串,或转义斜杠:
name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>', name)
尝试:
name= re.sub('<b>\((.+)\)</b>','<b>\\1</b>',name)
或者,如果您不想\\
在使用反斜杠的任何地方都有不清晰的代码,请不要手动转义反斜杠,而是r
在字符串之前添加一个,例如:r"myString\"
与"myString\\"
.
如果后跟数字,则需要转义 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)