如何这样匹配呢?怎么贪婪?

发布于 2022-10-15 09:19:43 字数 338 浏览 19 评论 0

大家好!

  1. a
  2. b
  3. b
  4. b
  5. b
  6. b
  7. d
  8. d
  9. d

复制代码有如上文本。我只知道匹配a到最后一个b

  1. perl -ne 'print if /a/../d/ and !/d/' test.txt >test01.txt

复制代码我现想匹配a到第二个b或者第三个,该怎么操作?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

余生再见 2022-10-22 09:19:43

大家好!有如上文本。我只知道匹配a到最后一个b我现想匹配a到第二个b或者第三个,该怎么操作?
perlnewbie 发表于 2011-04-18 09:25

自己算....
$ 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

撕心裂肺的伤痛 2022-10-22 09:19:43

chomp(my @aa = <DATA>);

my $join = join('',@aa);

print $& if ($join =~ /ab{2,3}/);   #得到abbb;
print $& if ($join =~ /ab{2,2}/);   #得到abb;

很笨的方法

野の 2022-10-22 09:19:43

原来这么简单啊@!!!!!爱死perl ,谢谢啊...

奢欲 2022-10-22 09:19:43

/a/../d/  会返回一个值,可以根据这个判断

三寸金莲 2022-10-22 09:19:43

/a(b){3}/   abbb
/a(b){2}/   abb

白昼 2022-10-22 09:19:43

本帖最后由 albertd 于 2011-04-18 13:11 编辑

my $a;
$a.=chomp($_)? $_:'' while (<>);
print $& if $a =~ /a(b){3}/;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文