正则表达式背后 - 不包括搜索中的单词

时间:2017-07-19 17:17:27

标签: regex pcre

我需要在语料库中搜索游戏 shame 等词语,但我想指定搜索以排除三个字符串一个游戏 / 耻辱游戏 / 羞耻 a / an / A / An WORD游戏 a / an / A / An WORD shame ,其中WORD是一个修饰符,例如,一个伟大的游戏一个伟大的耻辱

如果有人可以帮助我,那就太棒了,谢谢!

在我的语料库中,不定文章 a / an 游戏 a / an shame <之间的可选WORD < / em>最常见的是很棒真实。所以即使排除这两个,也会对我有所帮助。

下面的lookbehind完美地排除 a / A

(?<!a\s|A\s)\bshame\b

为了排除修改WORD,我试图在lookbehind grep中使用?\ w,但它只是不起作用 - 下面的grep没有运行,它仍然排除例如一个耻辱,但它仍然会返回不受欢迎的例子,例如一个很遗憾一个哭泣的耻辱 - 请参阅一致性行(3)和(4) )在下面的示例文本中:

    (?<!a\s|A\s|a\b\w\b|A\b\w\b)\bshame\b

我用来实现正则表达式的工具是AntConc,它支持Perl正则表达式。

使用下面的搜索字符串后,示例文本包含两个不相关的示例(3&amp; 4)

(?<!a\s|A\s)\bshame\b

1(匹配耻辱)

  

,人们在场边徘徊。&amp; nbsp;如果你想仔细看看,你必须打电话进入并等待被录取。&amp; nbsp;我猜我和扫罗都没有羞耻(或者只知道我们的银行账户存在硬币的好处),因为我们徘徊不休。&amp; nbsp;很多很多小精品店和设计时尚的时装店都有音乐喧嚣。 abbutterflie.txt 47 1

2(匹配耻辱)

  

在过去的二十年里,我经历过各种各样的大事,但我认真地认为足球中的反黑纳粹主义已成为过去。你们都应该羞愧地抱着头,一堆[badword]。 adamdphillips.txt 57 1

3(不要羞耻)

  因为我不是那么接近她,所以我是金钱的,但是她和另一个女孩真的是很好的朋友,这对他们来说有点混乱,这是一个很遗憾。无论如何,霍莉和我已经找到了我们两个人的某个地方。这将花费绝对的财富,我将在aderyn.txt上吃基础豆60 1

4(不要羞耻)

  

那里有很多非常好的乐队,在这个国家上下晃来晃去,永远不会签名,因为没有人可以弄清楚如何营销它们,这是一个令人遗憾的耻辱。那里有艺术家像&lt; a href =“http://www.angelsintheabattoir.com/”rel =“nofollow”&gt; Thea Gilmore&lt; / a&gt;和&lt; a href =“http://blog.amandapalmer.net/”rel =“nofollow”&gt; Amanda Palmer&amp; aderyn.txt 60 2

5(匹配耻辱)

  

/&gt;&lt; br /&gt;“现在没有比这更好的时间向恐怖分子展示我们对他们的恐惧。相反,我们被迫通过我们上司的懦弱行为羞于羞辱。”&lt; ; br /&gt;&lt; br /&gt;但佛罗里达州Lee县的高中顾问Herb Wiseman指出了7月7日的伦敦爆炸案。&lt; br /&gt;&lt; br /&gt;“如果孩子们得到了怎么办?在aggy91.txt 64 1

1 个答案:

答案 0 :(得分:3)

由于不允许使用可变长度的负面反馈,因此上一个问题的答案中的方法无法转移到此问题。

我已经走了EntityAssociation模式。这将匹配并丢弃不合格的比赛,并且仅保留符合条件的比赛:

EntityPhoto 3844步(Demo

或者如果您希望包含单词边界元字符:

(*SKIP)(*FAIL) 4762步(Demo