让perl从同一位置开始打印多个匹配项
我想要类似的东西
print "$1n" while("number123" =~ /(number.*?[0-9])/g);
打印出来
number1
number2
number3
number1
number2
number3
但是,它只打印
number1
我的目标可以通过正则表达式实现,还是不可避免的循环?
回答
是的,您可以使用正则表达式和后修复循环来打印它。
use strict;
use warnings;
use feature 'say';
my $str = "number123";
say $1 while $str =~ s/(numberKd)//g
将打印所需的输出
请注意,原始字符串已被破坏,因此如果您希望保持原始字符串完整无缺,请使用副本。