2012-09-24 116 views
0

我需要找到3個數字和其他3個字符的行:我想我用下面的正則表達式:正則表達式 d匹配開頭和行結束以及

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

但採取以下示例文本文件並運行上述正則表達式(文本必須以空行的話):

1 
12 
123xxx 
123y 


aaabb 

的問題是,有兩場比賽:123xxx(這是罰款),也123Y匹配! 我懷疑原因是「y」+行尾+下行開頭也匹配。

如何讓正則表達式引擎忽略\ D的行開始和結尾並僅匹配字符,而不是位置?

+0

你用什麼來對文本執行這個正則表達式? –

+0

我此刻正在使用UltraEdit – Daniel

+0

選中「僅匹配整個字」複選框。這應該解決它。 –

回答

1

UltraEdit中$的行爲會根據是否選中「僅匹配整個單詞」而發生變化。要獲得您想要的行爲,您需要確保選中該選項。你的正則表達式不需要改變。

+0

謝謝肖恩,它的工作原理。 – Daniel

0

也許:

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

m的裝置

款待字符串作爲多行。也就是說,將匹配字符串的開頭或結尾以匹配字符串中任何行的開頭或結尾的「^」和「$」。

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

我不知道確切的UltraEdit,但我預計將有類似的東西。

0

試試這個:

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

匹配線與3位數字三個字符不屬於空白字符。

相關問題