无法让perl正则表达式工作

Sai*_*ira -2 regex perl

我的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警察再次罢工!

Axe*_*man 5

我不知道这是否是你的确切问题,但在方括号内,'.'只是寻找一段时间.我没有在输入中看到一段时间,所以我想知道你的意思.

除了句号,字符类的其余部分正在寻找连续的空格.并且由于您没有使用m ultiline开关,因此您将新行计为空白(和任何字符),但没有指示扫描超出第一个记录分隔符.但是由于你打印它的方式,它也给出了一些指示,你的意思是超过文字时期,如上所述.