perl regexp {min,max} - 报告的场景

时间:2014-04-29 12:08:03

标签: regex perl

当regexp在正则表达式匹配多个匹配的字符串中搜索模式$&时,有没有办法解密匹配/[XY]{15,20}[WZ]{10,15}[XY]{15,20}/g报告的场景?

我试图避免组合:

[XY]{15}[WZ]{10}[XY]{15}
[XY]{15}[WZ]{10}[XY]{16}
[XY]{15}[WZ]{10}[XY]{17}
...
[XY]{16}[WZ]{10}[XY]{15}
[XY]{17}[WZ]{10}[XY]{15}
...

我将从中了解报告的情况。

按方案我的意思是:[XY]{15}[WZ]{10}[XY]{16}在字符串中匹配或是[XY]{16}[WZ]{10}[XY]{15}吗?

感谢任何建议。

1 个答案:

答案 0 :(得分:2)

正如mpapec已经建议的那样,如果你想确定更多关于它们的信息,你只需要捕获这些子表达式。

while ($string =~ /(([XY]{15,20})([WZ]{10,15})([XY]{15,20}))/g {
    my ($whole, $xy1, $wz, $xy2) = ($1, $2, $3, $4);

    print join(',', map length, ($xy1, $wz, $xy2)), "\n";