1

我有这么写的文字:

11 bla gulp bla 22
11 bla bla bla 2211 bla 
ble
bli 22

我需要一个正则表达式来查找所有夫妻之间的所有文本11和“ 22”但包含“ gulp”。

如果我(?s)11.*?22使用 TextCrawler 进行搜索,我会找到所有三个字符串:

bla gulp bla
bla bla bla
bla ble bli

错误的!我只想获得:

bla bla bla
bla ble bli

因为“ bla gulp bla”包含“ gulp”,我不想要它!

任何想法?:-)

4

1 回答 1

1

使用否定的前瞻断言:

11(?!.*?gulp.*?)(.*?)22

单词边界在中间(围绕 )可能是个好主意,gulp因为它可以区分gulpand或(?):gulpinggulpedungulp

11(?!.*?\bgulp\b.*?)(.*?)22

但把它们放在一切周围:

\b11\b(?!.*?\bgulp\b.*?)(.*?)\b22\b

将排除您的其他两个结果 - 不是您想要的。

于 2012-08-10T19:40:51.120 回答