正则表达式范围运算符
发布时间: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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |