按州使用正则表达式过滤城镇(Notepad ++)

时间:2015-10-07 16:47:35

标签: regex notepad++

我们说我有一个城镇列表,例如这一个:

Ackworth, IA
Adel, IA
Afton, IA
Agency, IA
Ainsworth, IA
Albany, MO
Albia, IA
Aledo, IL
Alexandria, MO
Alleman, IA
Allendale, MO
Allerton, IA
Alma, MO
Altamont, MO
Altoona, IA
Amity, MO
Andalusia, IL
Ankeny, IA
Annada, MO
Arbela, MO
Arispe, IA
Armstrong, MO
Arrow Rock, MO
Ashburn, MO
Atalissa, IA
Atlanta, MO
Augusta, IL
Aullville, MO

我只需要保留属于MO州的城镇,同时摆脱其他城镇。试过。+(?!MO)+ \ r \ n - 不起作用。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

在负面预测中添加.*

^(?!.*\bMO).+\r?\n?

^.+,\s+(?!MO).*\r?\n?

DEMO

答案 1 :(得分:0)

您可以使用:

^\w+, (?!MO)[A-Z]{2}$

DEMO

这断言行的开头,期望一个或多个单词字符后跟一个文字"逗号空格"。然后断言接下来的两个字符不是MO,然后匹配任意两个大写并断言行尾。

答案 2 :(得分:0)

你可以这样做:
(对不起,我没有N ++的英文版,不确定是否正确翻译。)

  • 转到菜单Search > Mark...
  • 在搜索输入中:MO$
  • 选中Mark all linesRegular Expression
  • 然后点击查找全部
  • 转到菜单Search > Signet (just before last entry)
  • 选择Delete lines NON marked