免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 16804 | 回复: 8
打印 上一主题 下一主题

请教正则表达式的逗号匹配问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-04 08:33 |只看该作者 |倒序浏览
my $start1 = qr/^FEE=(\d+\,\d+)$/;

上面这句我主要是想匹配下面这行:
FEE = 29,49

但是它连下面这行也匹配了:
FEE = 49

怎样才能只匹配带逗号那行呢?实在不懂,麻烦指点,谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-01-04 09:41 |只看该作者
$str1 = 'FEE=29,49';
$str2 = 'FEE=49';
if ($str1 =~ /^FEE=(\d+\,\d+)$/) { print "STR1 match!\n"; }
if ($str2 =~ /^FEE=(\d+\,\d+)$/) { print "STR2 match!\n"; }

这样写只匹配STR1

论坛徽章:
0
3 [报告]
发表于 2010-01-04 09:43 |只看该作者
另外再问个问题:
$CONDITION_GROUP代表条件组,它的值是外部传入,同一个值会从外部传入多次。
对于传入的不同的值,我想分组处理,比如传入了三次值100,这时脚本在接到第二次的100时可判断跟第一次是相同的,分为同一个组,不知该如何用脚本表达呢?

论坛徽章:
0
4 [报告]
发表于 2010-01-04 09:46 |只看该作者
两个问题尚未解决,请大家指点指点,谢谢啦~!

论坛徽章:
0
5 [报告]
发表于 2010-01-04 10:18 |只看该作者

回复 #4 dl0622 的帖子

贴数据最好~正则很多时候和环境关系比较紧密~
另外逗号不是元字符,没有必要转义~

论坛徽章:
0
6 [报告]
发表于 2010-01-04 10:53 |只看该作者
我觉得已经描述的很清楚了,数据太多,贴了就没人有耐心看了。

论坛徽章:
0
7 [报告]
发表于 2010-01-04 11:25 |只看该作者
只要是符号,转义下倒是没啥问题的
第一个问题,描述很清楚,但是你贴的数据,肯定都不会匹配上,因为字串有空格,你的regex没有...
本地确认,去掉数据的空格,没有问题:
C:\>perl -e "my $start1 = qr/^FEE=(\d+\,\d+)$/;if ( 'FEE=49' =~ /$start1/ ) { print \"matche
d!\n\"}";

C:\>perl -e "my $start1 = qr/^FEE=(\d+\,\d+)$/;if ( 'FEE=29,49' =~ /$start1/ ) { print \"mat
ched!\n\"}";
matched!
第二个问题,我也看不懂你说什么...

论坛徽章:
0
8 [报告]
发表于 2010-01-04 13:48 |只看该作者
原帖由 dugu072_cu 于 2010-1-4 11:25 发表
只要是符号,转义下倒是没啥问题的
第一个问题,描述很清楚,但是你贴的数据,肯定都不会匹配上,因为字串有空格,你的regex没有...
本地确认,去掉数据的空格,没有问题:
C:\>perl -e "my $start1 = qr/^F ...


不好意思我没说清楚,空格我已经在前面处理过的了,所以不是空格的问题。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2010-01-04 14:19 |只看该作者
郁闷!看了几遍,还不明白是什么意思。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP