Python 如果某个单词前面的两个单词来自否定列表,如何使用正则表达式不匹配模式

Python 如果某个单词前面的两个单词来自否定列表,如何使用正则表达式不匹配模式,python,regex,string,Python,Regex,String,考虑到以下字符串: str=word1 word2 word3 word4 word5 如果word4是来自[sample1,sample2]的样本,而word2不是来自sample3,sample4的样本,我想匹配一个模式 示例: str1=word1 word2 word3样本1 word5匹配 str2=word1示例3 word3示例1 word5不匹配 我使用负回溯编写了一个正则表达式,但我可以在一个单词之前匹配,而不能在两个单词之前匹配 如果有人能帮忙,谢谢。我想您正在搜索这样的正则

考虑到以下字符串:

str=word1 word2 word3 word4 word5 如果word4是来自[sample1,sample2]的样本,而word2不是来自sample3,sample4的样本,我想匹配一个模式

示例:

str1=word1 word2 word3样本1 word5匹配 str2=word1示例3 word3示例1 word5不匹配 我使用负回溯编写了一个正则表达式,但我可以在一个单词之前匹配,而不能在两个单词之前匹配


如果有人能帮忙,谢谢。

我想您正在搜索这样的正则表达式:

\w+ \w+(?<!sample3|sample4) \w+ (?:sample1|sample2) \w+
因为在向前看时没有限制


你能将你尝试过的模式添加到问题中吗?我投票将这个问题作为离题题结束,因为这个问题需要一个代码片段,而没有试图回答。
\w+ (?!sample3|sample4)\w+ \w+ (?:sample1|sample2) \w+