1

与えられたテキスト

my $line = "[cytokine]<ADJVNT-PROP-0> signaling, which have not [to]<PREP> date been shown [to]<PREP> be [[regulat]<EXP-V-0>ed]<EXP-PP-V-0>";
my $line2 = "[Human [papillomavirus]<VACC-PROP-0>]<VACC-PROP-0> genotype [31]<NUM> does not [express]<EXP-V-0> detectable [microRNA]<MIR-0> levels [during]<PREP> latent or productive virus replication.";

私がやりたいのは、<XXX> これを引き起こしていないものをすべて削除することです:

Output 1: <ADJVNT-PROP-0><PREP><PREP><EXP-V-0><EXP-PP-V-0>
Output 2: <VACC-PROP-0><VACC-PROP-0><NUM><EXP-V-0><MIR-0><PREP>

しかし、なぜこの正規表現は失敗したのでしょうか? それを行う正しい方法は何ですか?

s/[^<.*>]//g

これは完全なコードと実行可能ファイルです: https://eval.in/50996

4

3 に答える 3

0

これを試すことができます。

s/[^<]*(<[^>]+>)[^<]*/$1/g;
于 2013-09-27T02:29:24.293 に答える