- ベストアンサー
正規表現について
パターンマッチのところでつまずいてしまっています。 例えば、 マッチがマッチをすったらマッチになった という文面があったとします。(適当です) $txt = 'マッチがマッチをすったらマッチになった'; if($txt =~ m/$txt/s){$txtb = $';} print "$txtb"; としたら、 がマッチをすったらマッチになった と出てくると思います。 これを、 になった と表示させる為に、最後の「マッチ」にパターンマッチをさせる方法はありませんでしょうか? ネット上のHPを検索しましたが、どうしても見つけられませんでした。 何とぞ宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
正規表現中の $txt は何かのtypoですかね。$txt ではなく「マッチ」にマッチさせたいのだとして、 if (/.*マッチ/) {$txtb=$'} とすれば「.*」が最長一致になるので、最後の「マッチ」までマッチします。
その他の回答 (1)
- snowize
- ベストアンサー率27% (68/245)
あまり試したことがないので、もっとスマートな方法があるかもしれませんが…… gオプションで繰り返し評価したらどうでしょうか? 分かりにくいと思うので、サンプル借りてきました。 http://katamari.jp/weblog/index.php/2007/10/31/perl%E3%81%A7%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE-%E5%BE%8C%E6%96%B9%E5%8F%82%E7%85%A7%E3%81%A8%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%83%9E%E3%83%83%E3%83%81/
お礼
お教え頂いて、有り難うございました。 大変助かりました m(__)m
お礼
なるほど!! 全くその方法に気がつきませんでした。 大変助かりました。有り難うございました m(__)m