例如,我有一个这样的字符串:
'(1) item 1. \n(2) item 2'
我应该最终得到这个:
'(x) item 1. \n(x) item 2'
我怎样才能匹配括号内的文字,并替换它们?谢谢!
答案 0 :(得分:1)
转义括号:
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 :(得分:0)
In [3]: import re
In [4]: re.sub("\([^)]*","(x",'(1) item 1. \n(2) item 2')
Out[4]: '(x) item 1. \n(x) item 2'
答案 2 :(得分:0)
"\([^)]+\)"
将匹配括号中的任何内容,因此您可以
"(1) item 1. \n(2) item 2".gsub(/\([^)]+\)/, "(x)")
在红宝石中。
修改:修复格式设置,以便不会丢失转义...