这是一个平时最常用的正则表达式,出来这些,我们还有很多,这里我就不一一列举了,关于字符的含义,详见
http://www.cnblogs.com/lizhanqi/p/5906136.html
//定义需要匹配的正则表达式的规则(下边是一个手机号码的匹配是从下边的常用正则表达中抄过来的)
String REGEX_MOBILE_SIMPLE = "^[1]\\d{10}$";//简单的
//复杂
String REGEX_MOBILE_SIMPLE = "^1[3|5|8|7]\\d{9}$";//^代表開始,1是必须1开头,[3|5|8|7] 必须第二位是3或者5,8,7之间的一个,\\d{9}任意九个个数
//把正则表达式的规则编译成模板
Pattern pattern = Pattern.compile(REGEX_MOBILE_SIMPLE);
//把需要匹配的字符给模板匹配,获得匹配器
Matcher matcher = pattern.matcher(trim);
// 通过匹配器查找是否有该字符,不可重复调用重复调用
//重点解释:(如果该字符符合规则,第一次.find()返回的是true,第二次或者以后就是fasle)
matcher.find();
下边的文件是几个常用的正则表达
/**
* 验证手机号(简单)
*/
private static final String REGEX_MOBILE_SIMPLE = "^[1]\\d{10}$";
//复杂规则
final String REGEX_MOBILE_SIMPLE = "^1[3|5|8|7]\\d{9}$";//^代表開始,1是必须1开头,[3|5|8|7] 必须第二位是3或者5,8,7之间的一个,\d{9}任意九个个数
/**
* 验证手机号(精确)
* <p>
* <p>移动:134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188
* <p>联通:130、131、132、145、155、156、175、176、185、186
* <p>电信:133、153、173、177、180、181、189
* <p>全球星:1349
* <p>虚拟运营商:170
*/
private static final String REGEX_MOBILE_EXACT = "^((13[0-9])|(14[5,7])|(15[0-3,5-8])|(17[0,3,5-8])|(18[0-9])|(147))\\d{8}$";
/**
* 验证座机号,正确格式:xxxxx-xxxxxxxxxxxxx/
*/
private static final String REGEX_TEL = "^0\\d{2,3}[- ]?\\d{7,8}";
/**
* 验证邮箱
*/
private static final String REGEX_EMAIL = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
/**
* 验证url
*/
private static final String REGEX_URL = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-.%&=]*)?";
/**
* 验证汉字
*/
private static final String REGEX_CHZ = "^[\\u4e00-\\u9fa5]+$";
/**
* 验证用户名,取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾,用户名必须是6-20位
*/
private static final String REGEX_USERNAME = "^[\\w\\u4e00-\\u9fa5]{6,20}(?<!_)$";
/**
* 验证IP地址
*/
private static final String REGEX_IP = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";