dポイントプレゼントキャンペーン実施中!

PHP4を使っています。
表題のとおりなのですが、
カンマ区切りの金額を検索するための、正規表現を教えていただけないでしょうか?

http://oraclesqlpuzzle.hp.infoseek.co.jp/regex/r …
を参考に、

$pattern = '^(0|([1-9][0-9]{0,2}(,[0-9]{3}){0,2}))$';
if (preg_match("/$pattern/", $oneline_buffer, $matches)){
としているのですが、
なぜかpreg_matchにひっかかりません。
(preg_match の直前の行を通っていることは、確認済みです)

どなたか、お助け願えれば幸いです。

A 回答 (1件)

(,[0-9]{3}){0,2})なので、999,999,999より大きな金額に


ひっかからないような気がしますけど・・・
/^(0|([1-9][0-9]{0,2}(,[0-9]{3})*?))$/
でいかがでしょう
    • good
    • 0
この回答へのお礼

>(,[0-9]{3}){0,2})なので、999,999,999より大きな金額に
>ひっかからないような気がしますけど・・・

あ、なるほど、気づきませんでした。

それから、根本的な問題として、
「$oneline_buffer」に金額以外の文字列が含まれていたので、
正規表現の最初の「^」と最後の「$」が不要でした。

失礼いたしました。

ありがとうございました。

お礼日時:2007/04/09 12:06

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