我的perl生锈了.它只打印"匹配="但是1美元是空白的!?!
编辑1:h#$!贬低这个?没有错误的问题.如果你不喜欢它,继续下一个!
$crazy="abcd\r\nallo\nXYZ\n\n\nQQQ";
if ($crazy =~ m/([.\n\r]+)/gsi) {
print "matched=", $1, "\n";
} else {
print "not matched!\n";
}
Run Code Online (Sandbox Code Playgroud)
编辑2:这是更新的正则表达式的代码片段,效果很好!
$crazy="abcd\r\nallo\nXYZ\n\n\nQQQ";
if ($crazy =~ m/([\s\S]+)/gsi) {
print "matched=", $1, "\n";
} else {
print "not matched!\n";
}
Run Code Online (Sandbox Code Playgroud)
编辑3:哈哈,我看到perl警察再次罢工!
我不知道这是否是你的确切问题,但在方括号内,'.'只是寻找一段时间.我没有在输入中看到一段时间,所以我想知道你的意思.
除了句号,字符类的其余部分正在寻找连续的空格.并且由于您没有使用m ultiline开关,因此您将新行计为空白(和任何字符),但没有指示扫描超出第一个记录分隔符.但是由于你打印它的方式,它也给出了一些指示,你的意思是超过文字时期,如上所述.