人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

[PHP]全角数字にマッチする正規表現

全角数字にマッチさせるため下記正規表現を用意しました

<?php
mb_internal_encoding('euc-jp');
$str = "123";
$str = mb_convert_kana($str, "AK");
//echo $str;
if ( preg_match("/[0-9]+/", $str) ){
echo "matched";
} else {
echo "not matched";
}
?>

ところが上記を実行しても
"not matched"が表示されるばかりで一向にマッチする気配がありません
なぜかわかる方お願いします

なおコメントアウトしてある

echo $str;

を出力すると

123

と正しい値が出力されます

●質問者: jayz
●カテゴリ:インターネット ウェブ制作
✍キーワード:AK ECHO EUC-JP PHP STR
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● y-kawaz
●60ポイント

preg_match はSJISやEUC-JPに対応してないのでUTF-8でマッチさせてやればいいんじゃないでしょうか。

とりあえず "/[0-9]+/" の部分をUTF-8で渡してやれば動くようです。

例えば、このソースをUTF-8で保存すればそのままでも動くし、preg_match(mb_convert_encoding("/[0-9]+/", 'utf-8'), $str) に直してもいけました。

◎質問者からの返答

参考になりました

ありがとうございますm(_)m

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ