加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式范围运算符

发布时间:2020-12-14 05:56:47 所属栏目:百科 来源:网络整理
导读:我有一个字符串’11 15′. W / a Regex然后比较该字符串中的值,在本例中为11和15(可以是任意数字的数字,但我会用2个2位数字保持简单). 对于这些数字中的每一个,我看看它是否与我想要的任何数字匹配;在这种情况下,我想看看数字是“12”,“13”还是“14”.如果
我有一个字符串’11 15′. W / a Regex然后比较该字符串中的值,在本例中为11和15(可以是任意数字的数字,但我会用2个2位数字保持简单).

对于这些数字中的每一个,我看看它是否与我想要的任何数字匹配;在这种情况下,我想看看数字是“12”,“13”还是“14”.如果是,那么我改变’$m’的值:

my $string = '11 15 ';
while ( $string =~ /([0-9]{1,})s+/ig ) {
    my $m = $1;
    print $m . ".....";
    $m = 'change value' if $m =~ /[12...14]{2,}/g;
    print $m . "n";
}

生产:

11.....change value
15.....15

“15”保持不变,应该如此.但’11’的变化.我究竟做错了什么?

解决方法

[12 … 14]与“1”,“2”,“.”和“4”匹配. “11”匹配; “15”没有.如果您只是匹配数字,则不应使用正则表达式.将您的行更改为以下内容:

$m = 'change value' if $m ~~ [11..14];

或者,如果无法保证perl> = v5.10:

$m = 'change value' if grep { $m == $_ } 11..14;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读