如何在Python中使用re模块删除()

发布于 2024-11-07 20:08:27 字数 334 浏览 5 评论 0原文

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

(apa-bhari(n))apa-bhari(n )

编写了以下代码

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

但这只能返回

<b></b>

我不理解转义序列和反向引用。请告诉我解决方案。

I am in trouble for processing XML text.
I want to delete () from my text as follows:

from <b>(apa-bhari(n))</b> to <b>apa-bhari(n)</b>

The following code was made

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

But this can only returns

<b></b>

I do not understand escape sequences and backreference. Please tell me the solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

酒与心事 2024-11-14 20:08:27

您需要使用原始字符串 ,或转义斜杠:

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

You need to use raw strings, or escape the slashes:

name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>', name)
ㄟ。诗瑗 2024-11-14 20:08:27

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)

You need to escape backslashes in Python strings if followed by a number; the following expressions are all true:

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

So, your code would be

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

Alternatively, use the regular expression string definition:

name = re.sub(r'<b>\((.+)\)</b>', r'<b>\1</b>',name)
请恋爱 2024-11-14 20:08:27

尝试:

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

或者,如果您不想在使用反斜杠的任何地方都出现带有 \\ 的不可读代码,请不要手动转义反斜杠,而是在字符串之前添加 r,例如:r"myString\""myString\\" 相同。

Try:

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

or if you do not want to have an illisible code with \\ everywhere you are using backslashes, do not escape manually backslashes, but add an r before the string, ex: r"myString\" is the same as "myString\\".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文