1

怎么能排除一个确切的短语?!

例如,我不想在正则表达式代码中匹配它:

a sentence with hello phrase

但匹配这个

a sentence with oehll phrase

起初我用这个:

^([^hello]*)$

但它唯一的问题是排除了字母“h”、“e”、“l”和“o”(不是术语“hello”)!

我阅读了很多关于此的文章,并以我能想到的任何方式使用了 \b、(?!...) 和 (...),但我不能!

4

1 回答 1

0

尝试使用以下正则表达式:

^.*((\W|^)hello(\W|$)){0}.*$

这只是一个 hack,不幸的是,这个表达式也会排除嵌入在其他单词中的“你好”的句子。(例如,“带有hello out 短语的句子”)

替代方法:使用以下方法检测带有您想要的短语的句子:

^.*((\W|^)hello(\W|$)).*$

然后删除包含该短语的句子。

免责声明:此外,假设您正在处理文本文件中的原始行而不是英文句子,则编写此表达式。如果您想使用实际句子,我建议您首先将文本标记为单独的句子,然后使用相似的正则表达式测试每个句子。

于 2013-03-16T22:00:28.963 回答