2016-05-23 10 views
1

私はそれを実行すると私は警告このスクリプト空の範囲

mb_regex_encoding('UTF-8'); 
mb_internal_encoding('UTF-8'); 

$yomi = 'アイウエオャュョハ゛ヒ゜'; 

if (mb_ereg('^[ヲ-゜]+$', $yomi)) { 
    return true; 
} 
return false; 

を取得しています

を[警告]:mb_eregは():文字クラス

に空の範囲:ERRをコンパイルmbregex

私はグーグルでは解決策を見つけることができません。助けてください。あなたは半角カタカナの正規表現を探しているなら、あなたは次の検証を使用することができます

+1

あなたの最初の文字は '\ u30F2'で、ハイフンの後の文字は' \ u309C 'です - 降順で昇順でなければなりません。あなたの意図は何ですか? preg_match( '〜^ [゜ - ヲ] + $〜u'、$ yomi、$ match) ' –

+0

ちょうどpreg_matchを試して、これを得る:[警告]:preg_match ):コンパイルに失敗しました:文字クラスのオフセットの範囲が乱れています。ああ、投稿を更新します。もう一度やり直してください。 – dave101ua

+0

上記の更新されたコメントを参照してください。あなたの正規表現と一致させようとしているのは何ですか?どんな日本語キャラクター? –

答えて

1

preg_match('~^[ァ-ン゙゚]*$~u', $yomi, $matches) 

regex demo

IDEONE demoを参照してください:

$re = "/^[ァ-ン゙゚]*$/u"; 
$yomi = "アイウエオャュョハ゛ヒ゜"; 
$yomi2 = "カタカナ"; 
if (preg_match($re, $yomi, $matches)) { 
    echo "$yomi is valid!\n"; 
} 
if (preg_match($re, $yomi2, $matches)) { 
    echo "$yomi2 is valid!"; 
} 

出力がありますのみカタカナ is valid!

+0

はい、もっとテストします。ご協力ありがとうございます ! – dave101ua