我想从列表中找到特定单词的所有匹配项,但是当特定单词不出现在3个单词之前。
例如:
始终查找文本中出现“ good | best | better”,但之前没有出现“ no | not | none”的情况。
我尝试过类似的事情:
true
但是它不起作用。
答案 0 :(得分:4)
您可以通过PCRE
选项在R
中使用此perl=TRUE
正则表达式:
\b(?:not?|none)(?:\s+\S+){0,2}\s+(good|best|better)\b(*SKIP)(*F)|\b(?:good|best|better)\b
在您的R
代码中使用:
gregexpr("\\b(?:not?|none)(?:\\s+\\S+){0,2}\\s+(good|best|better)\\b(*SKIP)(*F)|\\b(?:good|best|better)\\b", mystr, perl=TRUE)
在PCRE
中,动词(*SKIP)(*F)
用于失败并跳过我们不希望匹配的匹配项。
答案 1 :(得分:0)