如何移除方括号内以_ng开头的子字符串?
问题解决:移除方括号内以_ng开头的内容
原代码问题分析
你的正则表达式存在两个关键错误:
- 错误添加了JS风格的正则分隔符
/,Python的re.sub不需要这种分隔符,直接写正则模式即可。 - 正则里多匹配了一层方括号
\[\[和\]\],但目标字符串里是单个方括号包裹的内容,应该匹配\[_ng[^\]]*\]。
修正后的代码
import re st = "hello[_ng11][test]hello3[_ngRTf]" modified_string = re.sub(r"\[_ng[^\]]*\]", "[]", st) print(modified_string)
代码说明
r"\[_ng[^\]]*\]":匹配以[_ng开头,直到遇到第一个]结束的内容,确保只处理单个方括号内的_ng开头片段。- 替换为
[],正好符合保留空方括号的需求。
运行后输出结果:
hello[][test]hello3[]
内容的提问来源于stack exchange,提问作者Jonathan Lebrun
相关产品推荐
相关产品推荐

