私は、この正規表現を探して生のhtmlのページをスキャンしているとしましょう。 (最後の引用符は意図的です)。Perlが各一致を反復する
m/(https?:\/\/.*?(?:'|"))/
このパターンは〜100回一致する可能性があります。共通のperlイディオムとは何ですか?/すべてのキャプチャグループのマッチのリストを反復する簡単な方法ですか? perlretut(非常に細かいチュートリアル)から
私は、この正規表現を探して生のhtmlのページをスキャンしているとしましょう。 (最後の引用符は意図的です)。Perlが各一致を反復する
m/(https?:\/\/.*?(?:'|"))/
このパターンは〜100回一致する可能性があります。共通のperlイディオムとは何ですか?/すべてのキャプチャグループのマッチのリストを反復する簡単な方法ですか? perlretut(非常に細かいチュートリアル)から
while ($x =~ /(\w+)/g) {
print "Word is $1, ends at position ", pos $x, "\n";
}
あなたはあなたのキャプチャグループ1のコンテンツを取得$1
で、すべての一致を反復処理するためにg
修飾子と一緒にwhile
を使用しており、この中にすることができますチュートリアルの例では、pos
の位置も取得します。
グローバルマッチング「g
」修飾子はリストコンテキストでキャプチャマッチのリストを返します。
say $_ for $str =~ /un($wanted)/g; # Prints only $wanted
@Zahid:私はあなたのアプローチは、よりコンパクトであると思います。 perlretutをrecommandingため
date, name, lang
ありがとうstema::次のコードは、あなたの例を理解
出力するために役立つことを願っています、それはPerlで正規表現のための素晴らしいページです。それは初心者から上級者まですべてを網羅しています。 –
複数行の文字列とアンカーを処理する場合は、 'm'修飾子を追加することを忘れないでください。^、$ –