下面是版主常用的几个正则表达式,分享一下,我也是刚学完正则表达式不久,有误地方还请指教。
自然数(0≤):\\d+
小数(整数(负数)):(-|\\+)?\\d+\\.?\\d*
东经度:\\+?(180\\.0{6,}|((1[0-7]\\d|[^0]\\d|\\d)\\.\\d{6,}))
西经度:-(180\\.0{6,}|((1[0-7]\\d|[^0]\\d|\\d)\\.\\d{6,}))
经度:(-|\\+)?(180\\.0{6,}|((1[0-7]\\d|[^0]\\d|\\d)\\.\\d{6,}))
北纬度:\\+?(90\\.0{6,}|(([1-8]\\d|\\d)\\.\\d{6,}))
南纬度:-(90\\.0{6,}|(([1-8]\\d|\\d)\\.\\d{6,}))
纬度:(-|\\+)?(90\\.0{6,}|(([1-8]\\d|\\d)\\.\\d{6,}))
经度和纬度判断中精确度至少是小数第6位。如至少是:0.000000。这里判断没有°符号。
是否为大陆的手机号码,常见号码:(13[0-9]|15[^4]|18[^1-4])\\d{8},这个是根据网上提供的电信,移动,联通的手机号码前三位判断的。
纯字母:[A-Za-z]+
下面介绍下我经常用到的不是用正则表达式判断的if判断:
判断是否为英文字符(包括符号):
for (int i; i < str.length(); i++) {
if(str.charAt(i) >= 0x0000 && str.charAt(i) <= 0x00FF)
continue ;
return false;
}
return true;
判断中文:
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= 0x0391 && str.charAt(i) <= 0xFFE5)
continue ;
return false;
}
return true;