【问题标题】:Difference in Perl regex variable $+{name} and $-{name}Perl 正则表达式变量 $+{name} 和 $-{name} 的区别
【发布时间】:2022-01-18 05:32:54
【问题描述】:

当 Perl 正则表达式变量 $+{name}$-{name} 用于从 Perl 语句/表达式代码中引用同一个正则表达式组时,它们有什么区别?

【问题讨论】:

    标签: regex perl


    【解决方案1】:

    $+{name} 包含name 引用的捕获子字符串 作为一个标量值,$-{name} 指的是一个 array 包含捕获 具有名称的组。
    这是一个小例子:

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    
    '12' =~ /(?<foo>\d)(?<foo>\d)/; # '1' and '2' will be captured individually
    
    print $+{'foo'}, "\n";          # prints '1'
    
    for (@{$-{'foo'}}) {            # $-{'foo'} is a reference to an array
        print $_, "\n";             # prints '1' and '2'
    }
    

    因为$+{name} 只能保存一个标量值,所以它被赋值 到捕获组的第一个(最左边)元素。

    【讨论】:

    • 没有办法进入相对的方式?例如,指的是从插入到正则表达式中的 Perl 代码中获取最后一组。
    • 你能用一些例子来说明你的要求吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 2011-10-28
    • 1970-01-01
    • 2020-03-24
    相关资源
    最近更新 更多