2007年10月25日木曜日

RegexとPerl

Regex(Regular expression:正規表現)とPerl。
Perl…GJ!!!
というわけで、正規表現まともに使うのは初めてかも。
そのうちWikiにまとめるけど、次のような感じ。
Hoge <tag attr="hoge">foo</tag> bar.

上記のような文からhogeとfooを抜き出す場合はこんな感じ
# もちろん、以下のRegexだとかなり問題があるけど
# ここではそういうことが問題ではなく
# $&, $1, $2みたいに正規表現中の()で囲まれた中身が
# とれることが言いたい。

$str = 'Hoge <tag attr="hoge">foo</tag> bar.';
$tag = "tag";
$attr = "attr";
if ( $str =~ m|<$tag $attr="(.*)">(.*)</$tag>|si ) {
print "all : $&\n";
print "attr : $1\n";
print "element : $2\n";
}

0 件のコメント:

コメントを投稿