- ベストアンサー
Perlで文字列の切り出しをするには?
おせわになります。 Perlであるパターン間の文字列を取り出す方法はあるのでしょうか?例えば、"Monday<From>Thursday<To>Friday"という文字列の<From>~<To>間、つまり"Thursday"を取り出したいのですが、うまくいきません。 できればパイプでつないでいくために、以下のような正規表現でかければ最高なのですが… echo 'Monday<From>Thursday<To>Friday' | perl -e '○○○○' もう1週間以上ここではまっています。Perlってはまると長いです…
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じ echo "Monday<From>Thursday<To>Friday" | perl -pe"s/.*<From>(.*)<To>.*/$1/g;"
その他の回答 (1)
- TNY
- ベストアンサー率42% (69/163)
回答No.1
$str = "Monday<From>Thursday<To>Friday"; if ($str =~ /<From>(.+)<To>/){$result = $1;} でどうでしょうか。 正規表現の()は$1,2,3..でとりだせます
質問者
お礼
早速のアドバイスありがとうございます。 echo ' Monday<From>Thursday<To>Fridays' | perl -pe 'if ($STDIN = ~ /<From>(.+)<To>/){print $1;}' を実行すると、”Thursday Monday<From>Thursday<To>Fridays”が返ってきますが、Thursdayのみを取り出す方法はあるのでしょうか?
お礼
本当にありがとうございます(悩んでいた自分が情けない…)。 Perlって本当にすごいって感じです。同じことを他の言語でやろうとすると、けっこう複雑な感じになりますから。 今回はご教授いただき、心より感謝致します。