Python 如何使用re.sub()替换括号内的文本

Python 如何使用re.sub()替换括号内的文本,python,regex,Python,Regex,例如,我有这样一个字符串: '(1) item 1. \n(2) item 2' 最后,我应该说: '(x) item 1. \n(x) item 2' 如何只匹配括号内的文本,并替换它们?谢谢 只需避开括号: In [1]: import re In [2]: s = '(1) item 1. \n(2) item 2' In [3]: re.sub(r'\(\d+\)', '(x)', s) Out[3]: '(x) item 1. \n(x) item 2' 您需要转义它们,因为

例如,我有这样一个字符串:

'(1) item 1. \n(2) item 2'
最后,我应该说:

'(x) item 1. \n(x) item 2'

如何只匹配括号内的文本,并替换它们?谢谢

只需避开括号:

In [1]: import re

In [2]: s = '(1) item 1. \n(2) item 2'

In [3]: re.sub(r'\(\d+\)', '(x)', s)
Out[3]: '(x) item 1. \n(x) item 2'
您需要转义它们,因为它们在正则表达式上下文中具有特殊意义(创建一个编号组)

将匹配括号中的任何内容,因此您可以

"(1) item 1. \n(2) item 2".gsub(/\([^)]+\)/, "(x)")
用红宝石做的


编辑:修复格式以便转义不会丢失…

到目前为止您尝试了什么?你用正则表达式标记了这个问题,但是你真的试过为这个问题编写正则表达式吗?什么部分有问题?括号内会出现什么类型的字符串?您需要的正则表达式很大程度上取决于您期望的输入类型。
"\([^)]+\)"
"(1) item 1. \n(2) item 2".gsub(/\([^)]+\)/, "(x)")