让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

将打印所需的输出

请注意,原始字符串已被破坏,因此如果您希望保持原始字符串完整无缺,请使用副本。


以上是让perl从同一位置开始打印多个匹配项的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>