目录
1.正则表达式
定义了字符串的模式,本质是一种特殊的字符串对象
2.String 支持正则表达式方法
.replaceAll() .replaceFirst() .split().matches()
3.java.util.regex 包主要包括以下三个类:
3.1Pattern 类:
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达 式作为它的第一个参数
3.2Matcher 类:
Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。 .find() 方法,如果有匹配结果,则返回true .group() ,返回匹配的结果内容
3.3PatternSyntaxException:
PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模 式中的语法错误。
4.正则表达式基本语法规则
// + 代表前边元字符次数{1,} // * 代表前边元字符次数{0,} // . 代表一个任意符号 ... 李. .* .{0,} ".*[a-z]+.*" // ? [a-c]? [a-c]{0,1} // ^ 开头 // $ 结尾 (1)\d* 匹配重复0次或多次数字 例如:可能为空 或 任意数字 (2,3。。。。) (2)\d+ 匹配重复1次或多次数字 例如:可能为1个或多个数字 1,23,234,2345,........ (3)\d? 匹配重复次个或者一次数字 例如:可能为空或者任意的一个数字(1,2,。。。) (4)\d{8}匹配重复8次数字 例如:123456768 (5)\d{4,}匹配重复至少4次数字 例如:1234,12345,124244,。。。。。 (6)^\d{8,11}$ 匹配重复8-11次数字 例如:12345678,123456789,1234567890,12345678901 //判断汉字 [\u4e00-\u9fa5]{1,} //代表汉字[\u4e00-\u9fa5] {1,}一个或多个 //大写字母 小写字母 [A-Z] [a-z] //数字 \d //代表一个数字 \d+ //代表一个或多个数字 \d{3} //代表三个数字 {n} n个 {n,} n个或多个 {n,m} //. 判断一个字符串是不是标准的手机号 ("1[3,5]\\d{9}"); [3,5,8]表示3,5,8其中一个数字 [0-9] 0到9
5.正则表达式分组
//2. 判断字符串有没有数字 把数字显示出来 String str = "huxinwie1jah14125asjf"; Pattern pattern = Pattern.compile("\\d+"); Matcher a = pattern.matcher(str); System.out.println(a.find()); while (a.find()){ System.out.print(a.group()); } 判断字符串有没有数字 bolean a.find()
7.常用的正则
常用的实用正则表达式整理(摘自自学编程网)
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^"d{n}$"。
只能输入至少n位的数字:"^"d{n,}$"。
只能输入m~n位的数字:。"^"d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^"+?[1-9][0-9]*$"。
只能输入非零的负整数:"^"-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^"w+$"。
验证用户密码:"^[a-zA-Z]"w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$""等字符:"[^%&’,;=?$"x22]+"。
只能输入汉字:"^["u4e00-"u9fa5]{0,}$"
验证Email地址:"/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/"。
验证InternetURL:"^http://(["w-]+".)+["w-]+(/["w-./?%&=]*)?$"。
验证电话号码:"^("("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
验证身份证号(15位或18位数字):"^"d{15}|"d{18}$"。
验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。