如何这样匹配呢?怎么贪婪?
大家好!
- a
- b
- b
- b
- b
- b
- d
- d
- d
复制代码有如上文本。我只知道匹配a到最后一个b
- perl -ne 'print if /a/../d/ and !/d/' test.txt >test01.txt
复制代码我现想匹配a到第二个b或者第三个,该怎么操作?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
自己算....
$ echo -e "a\nb\nb\nb\nb\nb\nb\nd\nd\nd\n" | perl -ne 'if(/a/../d/ and !/d/){print;last if($c++==2)}'
a
b
b
$ echo -e "a\nb\nb\nb\nb\nb\nb\nd\nd\nd\n" | perl -ne 'if(/a/../d/ and !/d/){print;last if($c++==3)}'
a
b
b
b
chomp(my @aa = <DATA>);
my $join = join('',@aa);
print $& if ($join =~ /ab{2,3}/); #得到abbb;
print $& if ($join =~ /ab{2,2}/); #得到abb;
很笨的方法
原来这么简单啊@!!!!!爱死perl ,谢谢啊...
/a/../d/ 会返回一个值,可以根据这个判断
/a(b){3}/ abbb
/a(b){2}/ abb
本帖最后由 albertd 于 2011-04-18 13:11 编辑
my $a;
$a.=chomp($_)? $_:'' while (<>);
print $& if $a =~ /a(b){3}/;