我有一个要求,我会检查文件中每行的长度使用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