免费注册 查看新帖 |

Chinaunix

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

如何匹配多个连续的字符串 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-20 23:31 |只看该作者 |倒序浏览
字符串为:0abbcccdef111
如何匹配 bb ,ccc, 111?

我写的:
my @arr= $_ =~ /(\w)\1{1,}/g;

@arr的结果是:b c 1
怎样才能得到:bb ccc 111呢,谢谢:)

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
2 [报告]
发表于 2012-06-20 23:48 |只看该作者
  1. my @r;
  2. my $t = '0abbcccdef111';
  3. while ($t =~ /((\w)\2+)/g) {
  4.     push @r, $1;
  5. }
  6. print join(' | ', @r), "\n";
复制代码

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
3 [报告]
发表于 2012-06-20 23:53 |只看该作者
本帖最后由 yinyuemi 于 2012-06-20 23:54 编辑
  1. perl -MData::Dumper -le '$str="0abbcccdef111"; $str=~/(.)\1+(*SKIP)(?{push @arr,$&})(*FAIL)/g;print Dumper \@arr'
  2. $VAR1 = [
  3.           'bb',
  4.           'ccc',
  5.           '111'
  6.         ];
复制代码

论坛徽章:
0
4 [报告]
发表于 2012-06-21 08:42 |只看该作者
回复 2# cdtits

/((\w)\2+)/g  啥意思? 这里面有\2么? 谢谢


   

论坛徽章:
0
5 [报告]
发表于 2012-06-21 09:44 |只看该作者
ghostvic 发表于 2012-06-21 08:42
回复 2# cdtits

/((\w)\2+)/g  啥意思? 这里面有\2么? 谢谢


/((\w)\2+)/g

第1个括号,也就是红色的括号,是\1。
第2个,也就是里面的,是\2

论坛徽章:
0
6 [报告]
发表于 2012-06-21 10:17 |只看该作者
yinyuemi 发表于 2012-06-20 23:53

这位大师的意思是这样的
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Data::Dumper;

  5. my @arr;
  6. $_ = "0abbcccdef111";
  7. while (m/(\w)\1+/g) {
  8.     push @arr,$&;
  9. }
  10. print Dumper \@arr;
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-06-21 10:18 |只看该作者
回复 5# 午夜凋零


知道了,谢谢啊

论坛徽章:
0
8 [报告]
发表于 2012-06-22 13:24 |只看该作者
my @arr;
while ($line =~ /(.)\1+(?{push @arr, $&})/g) {};
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP