如何使用跨语言通用正则表达式匹配并替换括号内的指定逗号
解决方案
你可以用支持环视特性的通用正则实现需求,无需绑定特定编程语言:
- 匹配规则(正则表达式):
(?<=\([^)]*),(?=[^()]*\)) - 替换内容:
FOO
正则逻辑说明
这个正则通过双向环视锁定括号内部的逗号:
- 反向肯定预查
(?<=\([^)]*):要求当前逗号的前面必须先出现左括号(,且左括号到逗号之间没有出现过右括号) - 正向肯定预查
(?=[^()]*\)):要求当前逗号的后面直到右括号)为止,都没有出现左括号(
两个条件同时满足的逗号,就只能是单个坐标组括号内部的逗号,不会命中括号外用来分隔不同坐标组的逗号。
验证效果
用你提供的原始字符串测试,替换后完全符合你给出的预期输出。
注意事项
目前绝大多数主流编程语言(Python、Java、JavaScript、Go、PHP等)的正则引擎都支持肯定环视特性,可直接使用该正则。
内容的提问来源于stack exchange,提问作者Manuel Simões
相关产品推荐
相关产品推荐

