my @matches = ($result =~ m/INFO\n(.*?)\n/);
因此,在Perl中,我想存储该正则表达式的所有匹配项。我希望每次出现时都将值存储在INFO\n和\n之间。
但是我只存储了最后一次出现的事件。我的正则表达式错了吗?
最佳答案
使用/g
修饰符进行全局匹配。
my @matches = ($result =~ m/INFO\n(.*?)\n/g);
在这种情况下,由于
.
与换行符不匹配,因此无需进行延迟量化。以下将提供更好的性能:my @matches = ($result =~ m/INFO\n(.*)\n/g);
如果您确实希望句点与换行符匹配,则可以使用
/s
。有关这些修饰符的更多信息,请参见perlre。
关于正则表达式-匹配所有出现的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11208924/