Perl RE 全局匹配不起作用 /.*(11).*/g

Perl RE 全局匹配不起作用 /.*(11).*/g

我有一个包含这一行的文件:

111112111122113

我想匹配所有出现的两个 1 的元素序列。

但是当我尝试这个时, 尽管在我的 RE 末尾$ perl -lne 'print $1 if /.*(11).*/g' u 有,但我只得到一个结果:g

11

在此处输入图片描述 我如何打印它们全部,我的 RExp 有什么问题?

答案1

使用非贪婪量词:

perl -lne 'print $1 if /.*?(11)/g'
#                 here ___^

演示与说明

但我认为你最好使用循环:

print $1 while ($inputline =~ /.*?(11)/g)

相关内容