0

我需要找到 3 个数字和 3 个其他字符的行:我想我使用以下 RegEx:

^\d{3}\D{3}$

但是使用以下示例文本文件并运行上面的 RegEx(文本中必须包含空行):

1
12
123xxx
123y


aaabb

问题是有两个匹配:123xxx(这很好),但也匹配了 123y!我怀疑原因是“y”+行尾+下一行的开头也匹配。

如何告诉正则表达式引擎忽略行开头和结尾 \D 并仅匹配字符,而不是位置?

4

3 回答 3

1

UltraEdit 中的行为$会根据您是否选中“仅匹配整个单词”而改变。要获得您想要的行为,您需要确保选中该选项。您的正则表达式不需要更改。

于 2012-09-24T15:52:29.423 回答
0

也许:

/^\d{3}\D{3}$/m

m手段_

将字符串视为多行。也就是说,将“^”和“$”从匹配字符串的开头或结尾更改为匹配字符串中任何位置的任何行的开头或结尾。

http://perldoc.perl.org/perlre.html

我不完全了解 UltraEdit,但我希望它会有类似的东西。

于 2012-09-24T15:42:32.103 回答
0

尝试这个 :

^\d{3}[\S]{3}$

匹配 3 位数字后跟三个非空白字符的行。

于 2012-09-24T15:43:51.787 回答