请教一个正则表达式



QUOTE:
原帖由 韧体 于 2008-4-1 12:30 发表
好了,问题已经解决了,刚才就是迷不过劲了~谢谢flw版的指点

索取已成习惯,意识不到奉献?
哎,刚刚证明还是不行,看来没办法靠正则来解决
因为有些文档还包含了
(AAA)dfwef
(AAA)dfewffwfrfrwrfwf
fwsfwrfrwfr(CCC)
fwfwfwsfws(CCC)
这样的套嵌,还是没办法只取
(AAA)dfewffwfrfrwrfwf
fwsfwrfrwfr(CCC)
看来只能另想他法了


QUOTE:
原帖由 韧体 于 2008-4-1 13:10 发表
哎,刚刚证明还是不行,看来没办法靠正则来解决
因为有些文档还包含了
(AAA)dfwef
(AAA)dfewffwfrfrwrfwf
fwsfwrfrwfr(CCC)
fwfwfwsfws(CCC)
这样的套嵌,还是没办法只取
(AAA)dfewffwfrfrwrfwf
fwsfwr ...

据说正则里有最小匹配,好象可以试试。


QUOTE:
原帖由 ly5066113 于 2008-4-1 13:57 发表


据说正则里有最小匹配,好象可以试试。

试了不行,因为文件内有很多不规则套嵌
这样的效果吗?

[Copy to clipboard] [ - ]
CODE:
#! perl -w
use strict;

open my $fh,"<errs.txt";
undef $/;

my $context=<$fh>;
while( $context =~ m/\(AAA\)(?>[^()]+)\(CCC\)/gs ) {
        print '-->',$&,"\n";
}

close $fh;