'EUR_AF'
の値を抽出したいこのコードは、ここでは'0.39'
です。 場合によっては'EUR_AF'
で終わり、3210で終わる場合もあります。 'EUR_AF'
は、'=0.39;'
または'=0.39'
の代わりに'=0'
で終わることがあります。perlからgrepへの正規表現を、異なるエンディングの文字列に作用させます。
コードをどのように処理するのですか?それをオンラインで見つけることはできないようです...私はもちろん、ほとんど無限のif-elsif-elseステートメントですべてをラップすることができますが、それは過度のようです。
例のテキスト:
AVGPOST=0.9092;AN=2184;RSQ=0.5988;ERATE=0.0081;AC=144;VT=SNP;THETA=0.0045;AA=A;SNPSOURCE=LOWCOV;LDAF=0.0959;AF=0.07;ASN_AF=0.05;AMR_AF=0.10;AFR_AF=0.11;EUR_AF=0.039
コード:$INFO =~ m/\;EUR\_AF\=(.*?0)/
はEUR_AF=0
の例を扱いますが、効率的に代替シナリオを処理する方法:$INFO =~ m/\;EUR\_AF\=(.*?)(;)/
私がいることを見つけましたか?
あなたは 'を作ることができるが、 'オプションで'? 'を指定するか、'? 'で' 0'オプションを指定することができます。あるいは、 '='の後ろの数字をすべて引くこともできます。例えば'EUR_AF = [0-9] +(?:\。[0-9] +)? '。 – chris85