1

他の言語で文字とスペース (単純な単語) だけを検索しようとしています。数字や句読点が見つかった場合は、検出例外をスローします。ウィキペディアで見つけた UTF-8 数字で書いた正規表現をテストすると、結果は常に一致して返ってきます。

試したキャラは以下です。

5または伍 http://en.wikipedia.org/wiki/Chinese_numerals

5 または Є http://en.wikipedia.org/wiki/Cyrillic_script

コードは次のとおりです。

$were_bad_characters_found = preg_match('/[^\p{L}\p{Zs}]+/us',  $data); 

質問に対する答えは常に、いいえ、悪い文字は見つかりませんでした。

ドキュメントに基づいて、これは機能するように見えました。実際、単純な英語の数字を実行しようとすると機能しますが、多言語文字がヒットするとすぐにロールオーバーします. さまざまな一般的なシナリオを検出するために、これにはいくつかのバリエーションがあり、すべての utf8 正規表現コードは英語の文字に対してのみうまく機能するようです。考え?

4

1 に答える 1

0

あなたが示した文字文字です。

Unicode の英語の数字のプロパティにより、文字ではなく数字になります。\p{Nd}PHP では、数字を一致させるために , を使用できます。しかし、正規表現は正常に機能しています。

于 2013-01-11T10:10:03.230 に答える