RegExのマッチングに問題があります。perl正規表現のマッチングの問題
my $line = 'Line no. : 8 : 8 : <ENAMEX TYPE="GENE">'
. 'CRP</ENAMEX> : directly inhibits : endothelial cell nitric'
. 'oxide <ENAMEX TYPE="GENE">facs</ENAMEX>'
. '<ENAMEX TYPE="GENE">crp</ENAMEX>:inhibit:endothelial'
. 'cell nitric oxide :Confidence Score 0.9017396427774064';
$line =~ /(.+)(\<ENAMEX TYPE\=\"GENE\"\>)(.+)(\<\/ENAMEX\>) (.+)(\<ENAMEX TYPE\=\"GENE\"\>)(.+)(\<\/ENAMEX\>)(.+)/;
print "$3 ---$5 ---$7\n";
、出力は次のとおりです。
CRP ---: directly inhibits : endothelial cell nitric oxide <ENAMEX TYPE="GENE">facs</ENAMEX> ---
問題:
私が欲しいものは、正規表現を使用して3つの事を抽出することです。出力は CRPのようなものだったはずです--- ---:内皮細胞の一酸化窒素--- facs;
$ 2が最初のブロックの後に何かを印刷していて、正規表現が2番目の部分と一致しないため、何が問題なのか教えてください。 ご希望の試合を取得するには感謝
てみ '置き換えるすなわち、最短一致量指定子を使用するために、少なくとも一回マッチ「」1回以上、すなわち、しかし、のように数回+'と '+':。意味します。?。詳細は、['perlretut'](http://perldoc.perl.org/perlretut.html)を参照してください。 –
YUp That works。ありがとうございます。 – ary