[英]How using Regular Expression to not match a pattern if two words before a certain word is from a negative list
考虑以下字符串:
str = "word1 word2 word3 word4 word5"
如果word4是[sample1,sample2]的样本,而word2不是(sample3,sample4)的样本,我想匹配一个模式。
例子:
str1 = "word1 word2 word3 sample1 word5" # it matches
str2 = "word1 sample3 word3 sample1 word5" # it doesn't match
我使用“ Negative Lookbehind”编写了一个正则表达式,但是我只能匹配一个单词,而不是两个单词。
谢谢大家的帮助。
我想您正在搜索这样的正则表达式:
\w+ \w+(?<!sample3|sample4) \w+ (?:sample1|sample2) \w+
如果您遇到“固定模式长度”问题,则可以使用负向前行而不是向后行 :
\w+ (?!sample3|sample4)\w+ \w+ (?:sample1|sample2) \w+
因为向前看没有限制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.