我有一個要求,我會檢查文件中每行的長度使用perl-regex和正則表達式應該匹配只有當長度是9或10個字符長。perl正則表達式匹配字符串長度
當前正則表達式:/^(.{9,10})$/
Sample input:
D ABCD12
D ABCD1
D ABCD123
D ABCD12
D ABCD
D ABCD1
"D ABCD123"
和"D ABCD"
,不應該匹配剩下的都是要匹配。
不知何故,我的正則表達式並沒有給我想要的結果,我在哪裏出錯了?根據意見 http://www.regexplanet.com/advanced/perl/index.html
添加以下細節:
我測試在這裏 (我使用這些匹配一些低劣的內部框架)。 從測試我的結果: 1)輸入如上,正則表達式如上述 2)選擇的M(多線)和g(全局)選項
Output:
$var = $input =~ /$regex/g
$var=1
$`=D ABCD12
$&=D ABCD1
$'=
D ABCD123
D ABCD12
D ABCD
-----------------------------------------
split($regex, $input)
[0]=D ABCD12
[1]=D ABCD1
[2]=
D ABCD123
D ABCD12
[3]=D ABCD
[4]=
[5]=D ABCD1
D ABCD1
確保您使用['M'修飾符(http://regex101.com/r/sZ9yA7)。 – HamZa
你最近表現如何?知道這一點非常重要。我們總是可以做出假設,但從長遠來看,猜測會很乏味。發佈包含輸入的工作代碼,顯示它輸出的內容以及您期望輸出的內容。 – TLP
您是否逐行讀取樣本輸入行?你會得到哪些結果?你需要提供更多的細節,正則表達式本身確實看起來不錯。 – stema