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

Regex 用于拆分以下数据的正则表达式,regex,posix,Regex,Posix,我在文件中的每一行都有一个数据,如下所示 BMT.PQ DMZ.IV VLD.Q WPS.T 我正在寻找一个正则表达式分成两类输出 数据的起始字母介于A到M 及其他 其中,数据的起始字母是从N到Z 我试过这个 [A-M].用于获取前半部分数据,其中第一个开头字母从A到M 我希望结果/正则表达式文本匹配为 仅: BMT.PQ DMZ.PQ 但它也提供了一个匹配 LD.Q这对我来说是不正确的 我甚至尝试了[(A-M)(A-M)(A-M)]。 基本上,我想根据数据中的起始字母进行拆分。一半用于从

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

BMT.PQ
DMZ.IV
VLD.Q
WPS.T
我正在寻找一个正则表达式分成两类输出

数据的起始字母介于
A
M

及其他

其中,数据的起始字母是从
N
Z

我试过这个

[A-M].
用于获取前半部分数据,其中第一个开头字母从
A
M

我希望结果/正则表达式文本匹配为

仅:

BMT.PQ 
DMZ.PQ
但它也提供了一个匹配

LD.Q
这对我来说是不正确的

我甚至尝试了
[(A-M)(A-M)(A-M)]。


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

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

^[A-M]

^[N-Z]

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

^[A-M]

^[N-Z]

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

^[A-M].*$


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

如果您已关闭,则只需添加
^
作为字符串开头,添加
$
作为字符串结尾

^[A-M].*$


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

A到m包括D&L->LD。Q匹配是的,我知道,因为我的正则表达式不正确。我试图让它不匹配任何VLD.QA到M includes D&L->LD.Q匹配是的,我知道,因为我的正则表达式不正确。我试图让它不匹配任何VLD.QCorrect。。虽然我想我需要^[A-M].*来获得包含点和点后字符的部分。否则,它只是匹配第一个字母本身,而不是数据的整个单词。这取决于您使用正则表达式提供匹配或使用它从字符串中提取数据。如果这是你正在寻找的一个匹配项,那么上面的方法就行了。如果您希望捕获部分数据,则需要考虑使用括号字符“(”和“')”。“.”字符表示“匹配任何字符”,因此如果要在正则表达式中包含实际的“.”字符,则需要使用反斜杠字符,即“\”对其进行转义。“*”字符表示前一个字符的出现次数为零或更多。只是好奇-如果我必须准确地接受一个称赞/否定正则表达式匹配,我该怎么做。对于上述情况,“^”(克拉)符号有2种用途,在上述示例中,它用于正则表达式的开头,并具有“匹配字符串的开头”的含义。如果你在正则表达式的其他地方使用它,它通常意味着否定。因此,要找到一行不是以“a-M”开头的,可以使用
^[a-M]
。。。困惑,嗯?显然,不匹配“A-M”会留下相当大的字符匹配范围。。。数字、空格、符号、所有其他字符等正确无误。。虽然我想我需要^[A-M].*来获得包含点和点后字符的部分。否则,它只是匹配第一个字母本身,而不是数据的整个单词。这取决于您使用正则表达式提供匹配或使用它从字符串中提取数据。如果这是你正在寻找的一个匹配项,那么上面的方法就行了。如果您希望捕获部分数据,则需要考虑使用括号字符“(”和“')”。“.”字符表示“匹配任何字符”,因此如果要在正则表达式中包含实际的“.”字符,则需要使用反斜杠字符,即“\”对其进行转义。“*”字符表示前一个字符的出现次数为零或更多。只是好奇-如果我必须准确地接受一个称赞/否定正则表达式匹配,我该怎么做。对于上述情况,“^”(克拉)符号有2种用途,在上述示例中,它用于正则表达式的开头,并具有“匹配字符串的开头”的含义。如果你在正则表达式的其他地方使用它,它通常意味着否定。因此,要找到一行不是以“a-M”开头的,可以使用
^[a-M]
。。。困惑,嗯?显然,不匹配“A-M”会留下相当大的字符匹配范围。。。数字、空格、符号、所有其他字符等。如果您的正则表达式引擎支持它,您可以使用负向后看(或负向前看,但在本例中我选择使用负向后看)。例如,正则表达式将是:
^[A-M].*(.这将只匹配以A和M之间的大写字母开头的行,而不是“DMZ.PQ”或“BMT.PQ”。如果正则表达式引擎支持它,则可以使用负向后看(或负向前看,但在这种情况下,我选择使用负向后看)。然后正则表达式将是例如:
^[A-M].*(?。这将只匹配以A和M之间的大写字母开头的行,而不是“DMZ.PQ”或“BMT.PQ”。