アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

テキストファイル(UTF-8エンコード)内の、
12,345円(価格)
という文字列内より、
正規表現(ActivePerl)で、
円(価格)
文字列だけをマッチさせようとしています。

たとえば、
my $Str = "12,345円(価格)";

if($Str =~ /.*\d円(価格)/){
# マッチOK処理
}
または、
if($Str =~ /円(価格)/){
# マッチOK処理
}
など、いろいろ試しましたが、
マッチしない状況です。

そこでご質問ですが、
どのようにすれば、マッチ出来ますでしょうか。

以上になります。
宜しくお願いいたします。

A 回答 (1件)

丸括弧「(」「)」は「.」や「*」と同様にメタ文字ですので、


「(」という文字自体にマッチさせたい場合はエスケープする必要があります。

/.*\d円\(価格\)/

参考URL:http://hodade.adam.ne.jp/seiki/page.php?study_es …
    • good
    • 0
この回答へのお礼

教えていただきましたようにエスケープしたところ、
すんなりマッチしました。

最近正規表現を利用しはじめたもので、
エスケープという概念がなく、まったく気づきませんでした。
本当にありがとうございました。

お礼日時:2013/12/19 20:47

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