如何使用正则表达式删除不以特定序列结尾的行

时间:2014-10-10 09:24:38

标签: regex regex-negation

我想使用正则表达式查找字典文件中以特定字符序列结尾的所有单词。我目前使用以下正则表达式

.*charsequence$

很好地匹配我的字典中以我的charsequence结尾的所有条目。

但是现在我实际上想要反转这个正则表达式以匹配所有不以我的charsequence结束的行,所以我可以用空字符串替换它们,最后得到一个以我的charsequence结尾的字典条目列表。我尝试使用以下正则表达式来否定charsequence部分:

.*[^(charsequence)]$

结果列表似乎包含以my charsequence结尾的所有原始条目,但它仍然包含一些不以我的charsequence结尾的条目。

注意:stackoverflow上有很多类似的问题,但我找不到一个完全覆盖我特定情况的问题。大多数类似问题似乎要么专注于删除不以特定序列开头的行,要么专注于删除不以特定字符结尾的行(与字符序列相对)。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

使用否定前瞻来匹配除charsequence

结尾的所有行
^(?!.*charsequence$).*$

DEMO

答案 1 :(得分:1)

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

试试这个。看看演示。

http://regex101.com/r/xT7yD8/15