【问题标题】:Perl Regex - print all matches found in a stringPerl Regex - 打印在字符串中找到的所有匹配项
【发布时间】:2014-04-16 00:00:26
【问题描述】:

希望这次转发没有什么大问题,我只是需要一些额外的信息,但在第一次时不知何故溜走了。

在我正在处理的程序中,我试图获取一个 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;
}

【问题讨论】:

标签: arrays regex perl printing


【解决方案1】:

试试这个:

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

【讨论】:

  • 这非常有效!可能需要一段时间让我明白虽然哈哈!
【解决方案2】:

使用while循环

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

【讨论】:

    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-06
    相关资源
    最近更新 更多