免费注册 查看新帖 |

Chinaunix

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

perl正则匹配结果保存 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-27 14:57 |只看该作者 |倒序浏览
有一个很大的字符串,格式类似如下:

a=string1&b=1,2&....a=string2&b=1,3&....

现在想用正则表达式把a的值string1,string2和b的值1,2和1,3等取出来,应该如何处理?

PHP中有preg_match_all将他们保存到一个数组中,perl应该如何做?谢谢

论坛徽章:
0
2 [报告]
发表于 2008-08-27 15:10 |只看该作者
取b的值倒是比较简单,可以直接使用“&”和split,然后匹配"b="就可以了;
如果是取a的值,可能有一个复杂的办法,首先使用“a=”和split,然后取所有的"&b="前面的内容就可以了。
方法可能不是最好的,但是能解决问题。

论坛徽章:
0
3 [报告]
发表于 2008-08-27 15:16 |只看该作者
谢谢楼上的,关键是如何把每个值都保存下来?

比如a的值为string1或者string2或者其他的,如何把每个值都分别保存下来?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2008-08-27 15:22 |只看该作者
use CGI;

论坛徽章:
0
5 [报告]
发表于 2008-08-27 15:30 |只看该作者
版主能说详细一点吗?谢谢

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2008-08-27 15:37 |只看该作者
原帖由 tanos 于 2008-8-27 15:30 发表
版主能说详细一点吗?谢谢

http://search.cpan.org/~lds/CGI.pm-3.41/CGI.pm

论坛徽章:
0
7 [报告]
发表于 2008-08-27 17:19 |只看该作者
哈哈,还是flw看出你的问题。 以后先说清你的问题

论坛徽章:
0
8 [报告]
发表于 2008-08-27 19:02 |只看该作者
还是 斑竹 牛,一眼看穿了他的外衣

论坛徽章:
0
9 [报告]
发表于 2008-08-27 20:12 |只看该作者
水啊

论坛徽章:
0
10 [报告]
发表于 2008-08-28 10:59 |只看该作者

回复 #1 tanos 的帖子

#!/usr/bin/perl

my $str = qq|a=string1&b=1,2&a=string2&b=1,3&a=string3&b=1,4|;
while($str =~ /([ab])=([^&]+)/g){
        print $1,"\t",$2,"\n";
}

输出:
a       string1
b       1,2
a       string2
b       1,3
a       string3
b       1,4

不知道是不是你想要的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP