Skip to main content
 首页 » 编程设计

python之如何使用正则表达式只替换括号内的内容

2025年05月04日22落叶

如何使用正则表达式只替换括号内的内容?

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) 

这可能有点令人困惑,但 [^\[\]]+ 匹配除 [ 和 ] 之外的任何字符。

regex101 demo