我写了一篇文字:
11 bla gulp bla 22
11 bla bla bla 2211 bla
ble
bli 22
我需要一个正则表达式来查找所有情侣“11
”和“22
”之间的所有文字但是不要包含“gulp
”。
如果我使用TextCrawler搜索(?s)11.*?22
,我会找到所有三个字符串:
bla gulp bla
bla bla bla
bla ble bli
错误!我只想获得:
bla bla bla
bla ble bli
因为“bla gulp bla
”包含“gulp
”,我不想要它!
有什么想法吗? : - )
答案 0 :(得分:1)
使用否定先行断言:
11(?!.*?gulp.*?)(.*?)22
单词边界可能是中间的好主意(围绕gulp
),因为它可以区分gulp
和gulping
,gulped
或{{1 }}(?):
ungulp
但把它们放在一切:
11(?!.*?\bgulp\b.*?)(.*?)22
会排除你的其他两个结果 - 而不是你想要的结果。