Perl Regex - 打印在字符串中找到的所有匹配项

时间:2014-04-16 00:00:26

标签: arrays regex perl printing

希望这个重新发布不存在重大问题,我只是需要一些额外的信息,这些信息在第一时间以某种方式滑倒了我的。

在我正在处理的程序中,我尝试接收txt文件,然后打印包含在一对引号中的txt位。

以下是我所拥有的。 (假设我已经接受了txt文件并将其放入一个数组中,每行都作为一个数组元素。)它可以工作,但是如果一行有2个以上的字符串,那么显然它只打印第一个。

打印所有比赛的干净方法是什么?

我尝试遍历$1$2$3等,然后打印if ne "";。但这似乎不起作用。

txt file contents:


Lorem ipsum dolor sit amet
consectetur "adipisicing elit"
sed "do" eiusmod tempor "incididunt"
ut "labore et dolore" magna aliqua


CODE:
foreach(@arr)
{
    print "$1\n" if /(".*?")/g;
}

2 个答案:

答案 0 :(得分:2)

试试这个:

while ($subject =~ m/"(.*?)"/sig) {
    # matched text = $&
}

答案 1 :(得分:0)

使用while循环

foreach (@arr) {
    while (/(".*?")/g) {
        print "$1";
    }
}