最近刚刚学到了一点点正则表达式的基础知识,解决了一个问题,个人感觉正则表达式在验证字符串还是很方便的,再次总结了几个规则,分享给一起学习进步的人:
现在许多编程语言(Java ,JavaScript ,PHP,python。。。)都会有采用正则表达式来处理文本,可以使用正则表达式实现高级文本的替换和查找功能,值得注意的在不同的编程语言中,正则表达式的语法规则都是一样的,但是在不同的编程语言中的调用方式还是有细微的差别。
优点:1:采用正则表达式与传统的字符串方式相比,正则表达式的代码更加精简。
2:可以提高编程的效率
规则:先写规则,最后在附上实例
1、“ . ” 点号,表示任意一个字符(包括空格,和tab指标,换行)
2、‘’ [ ] " 中括号,表示枚举,可能出现的字符并列写在方括号中
3、" () " 圆括号,表示分组,其中配合使用的符号 “ | “ 竖线表示并列或者的意思
4、” {} “ 大括号,表示重复的问题,有一些特殊的符号来表示重复
1> ” * “ 星号表示可有可无,可以表示多个 (0-n)次 {0, }
2> " ? " 问号表示可有可无,但是可以表示一个 (0-1)次 {0,1}
3> " + “ 加号表示 必须有,有可以表示多个 (1-n)次 {1, }
标准格式:
1、{n} 表示重复n次
2、{n,m} 表示至少重复n次,最多重复m次
3、{n, } 表示至少重复n次,没有上限
5、" - " 连续的符号 例如[ 0-9A-Za-z],注意不要使用空格在里面隔开,
6、" ^ " 不包括符号 例如:T[^0]N ,意思是中间得到数字不能0
7、" \ " 转义符号
" \d " 和 ” \D " 表示一个数字,相当于[0-9] 但是大写的D表示非数字 相当于 [^0-9]
" \s " 和 " \S" 表示一个空格 (包括空格,和tab指标,换行)大写的表示非空格
" \w " 和 " \W " 表示一个合法的标识符 ,相当于 [a-zA-Z0-9$_] 大写的表示非法字符[^a-zA-z0-9$_]
验证电话号码和座机的:
private boolean checkPhone(String phone) {
System.out.print(textField.getText());// 输出从页面得到的值
String regex; // d定义正则表达式的变量名
regex = "\\d{12}"; // 第一个条件电话号码有区号 三位或者四位的。加上八位的数字 一共十二位
// regex = "0\\d{2,3}-?[1-9]\\d{7} "; //座机号码
// regex = "1\\d{2}-?\\d{4}-?\\d{4}"; //手机号码
regex = "(0\\d{2,3}-?[1-9]\\d{7}|1\\d{2}-?\\d{4}-?\\d{4})";
Pattern pattern = Pattern.compile(regex);// 得到Pattern对象
Matcher matcher = pattern.matcher(phone); // 校验输入的手机号码
return matcher.matches(); // 判读是否正确
}
验证车牌号码:
/**
*
* <p>
* Title: checkVehicleID
* </p>
* <p>
* Description: 使用正则表达式来检查车牌号码的正确性
* </p>
*
* @return boolean
* @param carID
* 用于判断的车牌号码
*
* 1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成。如:粤B12345;
* 2.最后一个为汉字的车牌:允许以汉字开头,后面可录入六个字符,前五位字符,由大写英文字母和阿拉伯数字组成,
* 而最后一个字符为汉字,汉字包括“挂”、“学”、“警”、“港”、“澳”。如:粤Z1234港。
* 3.新军车牌:以两位为大写英文字母开头,后面以5位阿拉伯数字组成。如:BA12345。
*/
private boolean checkVehicleID(String carID) {
System.out.println(textField_1.getText());
String regex;
regex = "\\d{7}"; //车牌号码七位
regex = "([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]|A-HJ-LP-Z)[A-HJ-LP-Z][A-HJ-LP-Z1-9]{4}([挂学警港澳]|[A-HJ-LP-Z1-9])";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(carID);
return matcher.matches();
}