[英]Invert match in regex
有没有办法(或可能)使用正则表达式来反转匹配模式(不是预先给定的单词)?
例如
输入字符串:
a:b, c:d, a:b1,s:sad
模式是
a:[^,]+,?
此模式匹配字符串中的“a:b”和“a:b1”。 我可以替换/反转匹配剩余部分,即“c:d”和“s:sad”而不使用grep -v -e?
例如,继续,演示输出用“[TAG]”替换剩余部分:
a:b,[TAG], a:b1,[TAG]
[^ pattern]或(?!pattern)技巧失败,这里不允许使用带-e -v选项的grep。
谢谢!
表达方式
/((a:[^,]+,?\s?)(((?!a:[^,]+).)+(,|$))+)/\2[TAG]\5/g
将取代
a:b, c:d, a:b1,s:sad
同
a:b, [TAG], a:b1,[TAG]
但是我不确定我理解你对(?!pattern)不起作用的评论。 我在https://regex101.com/进行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.