如何排除确切的短语?!
例如,我不希望在正则表达式代码中匹配:
a sentence with hello phrase
但匹配此
a sentence with oehll phrase
起初我用过这个:
^([^hello]*)$
但它唯一的问题是排除字母“h”,“e”,“l”和“o”(不是“你好”这个词)!
我阅读了很多关于此的文章并以我能想到的任何方式使用\ b,(?!...)和(...),但我不能!
答案 0 :(得分:0)
尝试使用以下正则表达式:
^.*((\W|^)hello(\W|$)){0}.*$
这只是一个黑客,不幸的是,这个表达式也会排除其他单词中嵌入“hello”的句子。 (例如,“带有 hello out短语的句子”)
替代方法:使用以下内容检测具有所需短语的句子:
^.*((\W|^)hello(\W|$)).*$
然后删除包含该短语的句子。
声明: 此外,假设您正在处理文本文件中的原始行而不是英语句子,则已编写此表达式。如果你想使用实际的句子,我建议你首先将你的文本标记为单独的句子,然后用类似的正则表达式测试每个句子。