如何在正则表达式上排除某些单词

时间:2015-04-03 06:21:48

标签: regex sublimetext sublimetext3

我有一个我需要修改的文本文档。大多数单词都用“ - ”(减号)字符分隔。

所以在崇高文本中,我尝试了这种模式:

(\w+)\-(\w+)

这种模式完美无缺,但文档中有一个单词“ - ”(减号)自然。 (例如:foo-bar)

所以我需要一个模式找到所有减去分隔的单词,但不包括“foo-bar”

很抱歉,如果之前提出此问题,但我找不到我需要的答案

1 个答案:

答案 0 :(得分:1)

您可以使用否定预测(使用可选的i开关以不区分大小写的方式匹配单词):

(?i)(?!\bfoo\-bar\b)\b(\w+)-(\w+)\b

请注意,这只适用于非重叠匹配。

参见示例:

enter image description here

如果您想在屏幕截图中提供的情况下用空格替换连字符,可以使用(?!\bfoo\-bar\b)\b(\w+)\-(?=\w)搜索正则表达式并替换为$1(结果:go there now):

enter image description here