正则表达式选择不包含两个单词之间的单词的字符串

时间:2017-10-29 20:56:24

标签: php regex

假设我们有4个字符串:

1)
aa bb aa

2)
aa cc aa

3)
aa
bb
aa

4)
aa
cc
aa

我想只选择1和3来替换php preg_replace。

经过几小时的谷歌搜索后,我最终只选择了aa(?!.*cc).*aa。有没有办法一起选择1和3?

1 个答案:

答案 0 :(得分:1)

“两个分隔符之间不包含单词”可以使用negative lookahead assertion完成:

(?s)aa(?:(?!cc).)*?aa

(?s)修饰符允许.也匹配换行符。