我怎样才能找到所有内容但是某些短语带有正则表达式?

Ken*_*eng 2 regex regex-negation

好吧,所以我有一个短语"foo bar",我想找到一切但是"foo bar".
这是我的文字.

ipsum dolor foo bar Lorem ipsum dolor sit amet,consectetur adipisicing elit,
sed do
eiusmod tempor foo bar incididunt ut labore et
dolore foo bar

有一种方法可以在正则表达式中做到这一点吗?我不必去使用字符串等吗?

结果:

注意我不能做一个很好的突出显示,但粗体给你一个想法(虽然前后的空格也将被选中,但它打破了粗体).

ipsum dolor foo bar Lorem ipsum dolor sit amet,consectetur adipisicing elit,
sed do
eiusmod tempor foo bar incididunt ut labore et
dolore foo bar

假设PCRE命名法.


更新2013年7月29日:最好使用您选择的语言中的搜索和替换功能,只是"删除"您不想要的短语,这样您就可以获得所需的信息.

tch*_*ist 9

一般来说,如果foobar匹配本身,则(?s:(?!foobar).)*匹配任何 匹配的东西foobar,包括任何东西.

您可以使用它来查找其中没有的行,foobar例如,使用

^(?:(?!foobar).)*$

你也可以使用你的语言的split()功能分割 foobar,这将给你所有那些碎片包括分割样式.

关于讨厌的鲜为人知的回溯控制动词,(*FAIL)(*COMMIT)我一样,我还没有太多机会在​​"非玩具"节目中使用它们.我发现,通过独立的子表达式(?>...)和占有欲量词*+,++,?+等给我足够多的绳子,可以这么说.

也就是说,我(*FAIL)这个答案中有一个玩具的例子; 这是第一个正则表达式解决方案.其存在的原因是我想迫使正则表达式引擎回溯所有可能的排列; 真正的目标只是计算它尝试了多少种方式.

请理解我的两个正则表达式,以及来自其他人的许多非常有创意的答案,都是有趣的,诙谐的事情.不过,人们可以从他们身上学到很多东西 - 一旦人们从震惊中恢复过来.☺