一个Perl 匹配问题# Programming - 葵花宝典
L*r
1 楼
对下列文本逐行处理,
主要目标是把 括号里包含有NN/JJ/NNS/VP的短语提取出来,存到一个数组里。
比如这行"(NP (JJ extreme) (NN fire) (NN threat)))"
要求处理后的数组为
@array==("(JJ extreme)","(NN fire)","(NN threat)")
我用
my $content_ALL = '.*(\(NNPS\s.+\)|\(NNP\s.+\)|\(NNS\s.+\)|\(NN\s.+\)|\(JJR\
s.+\)|\(JJS\s.+\)|\(JJ\s.+\)|\(VBZ\s.+\)|\(VBD\s.+\)|\(VBG\s.+\)|\(VBN\s.+\)
|\(VBP\s.+\)|\(VB\s.+\)|\(RBS\s.+\)|\(RBR\s.+\)|\(RB\s.+\))';
my @myp = $line =~/$content_ALL/g;
可是根本得不到要的效果。
谁给个方子?谢谢
(ROOT
(S
(NP
(NP (NNS Scores))
(PP (IN of)
主要目标是把 括号里包含有NN/JJ/NNS/VP的短语提取出来,存到一个数组里。
比如这行"(NP (JJ extreme) (NN fire) (NN threat)))"
要求处理后的数组为
@array==("(JJ extreme)","(NN fire)","(NN threat)")
我用
my $content_ALL = '.*(\(NNPS\s.+\)|\(NNP\s.+\)|\(NNS\s.+\)|\(NN\s.+\)|\(JJR\
s.+\)|\(JJS\s.+\)|\(JJ\s.+\)|\(VBZ\s.+\)|\(VBD\s.+\)|\(VBG\s.+\)|\(VBN\s.+\)
|\(VBP\s.+\)|\(VB\s.+\)|\(RBS\s.+\)|\(RBR\s.+\)|\(RB\s.+\))';
my @myp = $line =~/$content_ALL/g;
可是根本得不到要的效果。
谁给个方子?谢谢
(ROOT
(S
(NP
(NP (NNS Scores))
(PP (IN of)