RegEx \ D也匹配行的开头和结尾

时间:2012-09-24 15:37:53

标签: regex pcre

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

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

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

1
12
123xxx
123y


aaabb

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

也许:

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

m表示

  

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

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

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

答案 2 :(得分:0)

试试这个:

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

将行与3位数匹配,后跟3个不是空白字符的字符。