• ベストアンサー

Perlで文字列の切り出しをするには?

おせわになります。 Perlであるパターン間の文字列を取り出す方法はあるのでしょうか?例えば、"Monday<From>Thursday<To>Friday"という文字列の<From>~<To>間、つまり"Thursday"を取り出したいのですが、うまくいきません。 できればパイプでつないでいくために、以下のような正規表現でかければ最高なのですが… echo 'Monday<From>Thursday<To>Friday' | perl -e '○○○○' もう1週間以上ここではまっています。Perlってはまると長いです…

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんな感じ echo "Monday<From>Thursday<To>Friday" | perl -pe"s/.*<From>(.*)<To>.*/$1/g;"

AppleScripter
質問者

お礼

本当にありがとうございます(悩んでいた自分が情けない…)。 Perlって本当にすごいって感じです。同じことを他の言語でやろうとすると、けっこう複雑な感じになりますから。 今回はご教授いただき、心より感謝致します。

その他の回答 (1)

  • TNY
  • ベストアンサー率42% (69/163)
回答No.1

$str = "Monday<From>Thursday<To>Friday"; if ($str =~ /<From>(.+)<To>/){$result = $1;} でどうでしょうか。 正規表現の()は$1,2,3..でとりだせます

AppleScripter
質問者

お礼

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

関連するQ&A

専門家に質問してみよう