2015-09-11 9 views
5
を検出していません

私は、文字列が数値であるかどうかを検出する方法があります:正規表現は、多言語の数字を一致させるために、中国の数字

上記の方法がうまく英語、ヒンディー語、アラビア数字に一致するが、中国の番号と一致するように失敗している
public static boolean isNumber(String num) 
{ 
    return num.matches("(\\p{N})+"); 
} 

三十萬零二百五十など

それは任意の言語(または主要言語)からの数を一致させることができます正規表現を作成することは可能ですか?

編集:数は小数ではありません、電話番号を検証するために使用されます。

+0

これらは '\ p {Lo}'カテゴリに属しているようです。 –

+0

@stribizhevは動作していますが、http://www.regular-expressions.info/unicode.htmlの\ p {Lo}の定義は数字以外の文字と一致するかもしれないと言われていますか? –

+0

この文字が数字として使用されているかどうかを簡単に自動判別する方法はありますか?単語/テキストの非数値部分として使用できますか? – doublep

答えて

0

コメントにすでにいくつか指摘されているように、数字は数字「1」「2」「3」などに使用されます。 中国は19世紀にインドアアラビア数字を導入しました。 \p{N}も中国語の数字と一致する必要があります。リテラルが必要な場合は、stribizhevが示唆しているように、リテラルを含める必要があります。

関連する問題