用于拆分数据的正则表达式

时间:2012-10-25 14:38:33

标签: regex posix

我在文件的每一行都有一个数据,如下所示

BMT.PQ
DMZ.IV
VLD.Q
WPS.T

我正在寻找一个正则表达式,分为两类输出

数据的起始字母介于AM

之间

和其他

数据的起始字母从NZ

我试过这个

[A-M].*AM的第一个开头字母获取前半部分数据

我期待

的结果/正则表达式文本匹配

仅限:

BMT.PQ 
DMZ.PQ

但它也匹配了

LD.Q这对我不合适。

我甚至未能成功[(A-M)(A-M)(A-M)].*

基本上我想基于数据中的起始字母进行拆分。一半用于从AM的字母开始的数据,另一半用于以字母N开头到Z的数据。

2 个答案:

答案 0 :(得分:1)

你很接近,你只需要为字符串的开头添加^,为字符串的结尾添加$

^[A-M].*$

^[N-Z].*$

确保启用多线模式。多行模式(通常是m标志)允许^$分别检测行的起点和行尾。

答案 1 :(得分:0)

克拉符号表示正在搜索/匹配的字符串的开头。您可能需要的两个正则表达式是:

^[A-M]

^[N-Z]