プロが教える店舗&オフィスのセキュリティ対策術

おせわになります。

Perlであるパターン間の文字列を取り出す方法はあるのでしょうか?例えば、"Monday<From>Thursday<To>Friday"という文字列の<From>~<To>間、つまり"Thursday"を取り出したいのですが、うまくいきません。
できればパイプでつないでいくために、以下のような正規表現でかければ最高なのですが…

echo 'Monday<From>Thursday<To>Friday' | perl -e '○○○○'

もう1週間以上ここではまっています。Perlってはまると長いです…

A 回答 (2件)

こんな感じ



echo "Monday<From>Thursday<To>Friday" | perl -pe"s/.*<From>(.*)<To>.*/$1/g;"
    • good
    • 1
この回答へのお礼

本当にありがとうございます(悩んでいた自分が情けない…)。

Perlって本当にすごいって感じです。同じことを他の言語でやろうとすると、けっこう複雑な感じになりますから。

今回はご教授いただき、心より感謝致します。

お礼日時:2005/03/25 22:05

$str = "Monday<From>Thursday<To>Friday";



if ($str =~ /<From>(.+)<To>/){$result = $1;}

でどうでしょうか。
正規表現の()は$1,2,3..でとりだせます
    • good
    • 0
この回答へのお礼

早速のアドバイスありがとうございます。

echo ' Monday<From>Thursday<To>Fridays' | perl -pe 'if ($STDIN = ~ /<From>(.+)<To>/){print $1;}' を実行すると、”Thursday Monday<From>Thursday<To>Fridays”が返ってきますが、Thursdayのみを取り出す方法はあるのでしょうか?

お礼日時:2005/03/24 23:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!