我有一个方法来检测String是否是一个数字:
public static boolean isNumber(String num)
{
return num.matches("(\\p{N})+");
}
Run Code Online (Sandbox Code Playgroud)
上述方法成功匹配英语,印地语,阿拉伯语数字,但无法匹配中文数字:
三十万零二百五十等
是否可以创建一个可以匹配任何语言(或主要语言)的数字的正则表达式?
编辑:该号码不是小数,它将用于验证电话号码.
正如一些人在评论中已经指出的,这些是用于数字的单词,即“一”、“二”、“三”等。中国在19世纪引入了印度-阿拉伯数字,所以也应该\p{N}匹配中国数字。如果您还想要文字,则应该包括它们,正如 stribishev 建议的那样。
| 归档时间: |
|
| 查看次数: |
834 次 |
| 最近记录: |