正则表达式;提高程序的性能,简化代码,提高代码的可读性,简化对字符串的操作
正则表达式的用途;
字符串的匹配 字符串的分割 字符串的查找 字符串的替换
正则表达式的验证语法
[a] //[]表示这个字符只出现一次 ,[a] 表示a只出现一次 [ abc ] 表示出现a或b或c只出现一次 [^abc] 任何字符,除了 a、b 或 c [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) [a-z&&[def]] d、e 或 f(交集) [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去) [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
验证字母是否为小写 Pattern pattern = Pattern.compile("a-z"); Matcher matcher = pattern.matcher("s"); matcher.matches(); 条件成立为true
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \w [a-zA-Z0-9] \W 表示^\w以外的 ^ 非 验证字母是为任意字符+bc Pattern pattern = Pattern.compile(".bc"); Matcher matcher = pattern.matcher("[abs?1]bc"); matcher.matches(); 条件成立为true
数量词;
n? 一次或一次也没有 n* 0次或多次 n+ 一次或多次 N{5} 出现五次 n{5,} 出现五次以上 n{5,10} 出现5到10次
验证字符串
Pattern pattern = Pattern.compile(
"JA[V]*A"
);
Matcher matcher = pattern.matcher(
"JAA"
);
matcher.matches();
条件成立为true
我的作业:
1,匹配邮箱地址: [email protected] admin@163.com.cn
1),字母开头
2),字母,数字,下划线特殊符号组成
String str = "[email protected]"; String ragexDemo = "[a-zA-Z]([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)*" + "@([a-zA-Z0-9]+).[a-zA-Z]{3}.?[a-zA-Z]{0,2}"; boolean b = str.matches(ragexDemo); System.out.println(b);
2.验证ip地址是否合法
匹配ip地址在0.0.0.0~~~~~~~~~255.255.255.254之间的
//要匹配的字符 String str = "0.0.155.254"; //匹配规则 String ragexDemo ="[12]?[0-9]?[0-5].[12]?[0-9]?[0-5]. +""+[12]?[0-9]?[0-5].[12]?[0-9]?[0-4]"; boolean b = str.matches(ragexDemo); System.out.println(b);