正则表达式;提高程序的性能,简化代码,提高代码的可读性,简化对字符串的操作
正则表达式的用途;
字符串的匹配
字符串的分割
字符串的查找
字符串的替换
正则表达式的验证语法
[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,匹配邮箱地址: admin_a_a@163.com admin@163.com.cn
1),字母开头
2),字母,数字,下划线特殊符号组成
String str = "admin_999jihu_aa@163.com.xc";
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);