在阅读了这个类似的问题并多次尝试了我的代码之后,我继续得到相同的不想要的输出。
假设我正在搜索的字符串是“我昨天看到了 wilma”。正则表达式应捕获后跟“a”的每个单词及其可选的5 个后续字符或空格。
我写的代码如下:
$_ = "I saw wilma yesterday";
if (@m = /(\w+)a(.{5,})?/g){
print "found " . @m . " matches\n";
foreach(@m){
print "\t\"$_\"\n";
}
}
但是,我不断得到以下输出:
found 2 matches
"s"
"w wilma yesterday"
而我希望得到以下一个:
found 3 matches:
"saw wil"
"wilma yest"
"yesterday"
直到我发现里面的返回值@m
是$1
and $2
,你可以注意到。
现在,由于/g
标志已打开,而且我认为问题不在于正则表达式,我怎样才能获得所需的输出?