如何使用正则表达式只替换括号内的内容?
String = "This is my string [123]"
我想用 456 替换 123
Desired_String = "This is my string [456]"
我的尝试:
regex = '.*\[(.*?)\].*'
re.sub(regex,'456',String)
>> 456
我不确定要使用什么正则表达式才能将 123 替换为 456。
请您参考如下方法:
如果您稍微修改正则表达式和替换字符串,您会得到它:
regex = '\[.*?\]'
re.sub(regex,'[456]',String)
您无需将整个字符串与 .* 匹配即可使替换生效。
此外,这里并不完全需要,但最好使用原始正则表达式字符串:
regex = r'\[.*?\]'
^
另一种选择是使用否定类,这也会更快!
regex = r'[^\[\]]+(?=\])'
re.sub(regex,'456',String)
这可能有点令人困惑,但 [^\[\]]+ 匹配除 [ 和 ] 之外的任何字符。
