用于匹配多语言数字的正则表达式,不检测中文数字

Sar*_*tal 6 java regex

我有一个方法来检测String是否是一个数字:

public static boolean isNumber(String num)
{
    return num.matches("(\\p{N})+");
}
Run Code Online (Sandbox Code Playgroud)

上述方法成功匹配英语,印地语,阿拉伯语数字,但无法匹配中文数字:

三十万零二百五十等

是否可以创建一个可以匹配任何语言(或主要语言)的数字的正则表达式?

编辑:该号码不是小数,它将用于验证电话号码.

Hei*_*ica 0

正如一些人在评论中已经指出的,这些是用于数字的单词,即“一”、“二”、“三”等。中国在19世纪引入了印度-阿拉伯数字,所以也应该\p{N}匹配中国数字。如果您还想要文字,则应该包括它们,正如 stribishev 建议的那样。