正则表达式:
负责字符串匹配处理规则
1)字符集:
[1234]表示1,2,3,4之一
[^12] 表示除了1,2
[1-5] 表示1,2,3,4,5
[a-zA-Z] 大小写字母
3)预定义字符集
\d 表示数字[0-9]
"." 点 表示任意字符
\w 表示单词字符[0-9a-zA-Z_]
注意:包括下划线_
\s 表示匹配空白:\t \n \r \b \p
\D 表示非数字
\S 表示非空白
\W 表示非单词字符
{m,n} 数量 m 到 n 个
{n} 数量 n 个
{n,} 表示 n 个以上
? 表示出现0到1次 {0,1}
+ 表示出现1到n次 {1,}
* 表示出现0到n次 {0,}
4)正则表达式以"^"开头,"$"结尾 [^\d{5}$] 表示从头到尾匹配5个数字
5)特殊字符需要用 "\" 转义, .表示任意字符,\.才匹配 .(点)
String reg = "^\\\\\\d{6}\\\\$";
System.out.println(reg);
由于java输入时对\要转义,实际的正则表达式是 ^\\\d{6}\\$
正则表达式也要对\转义,实际匹配的字符串是 \ 6个数字 \
String对正则表达式的支持
重点掌握以下3个方法
1)boolean matches(String regex)
返回此字符串是否匹配给定的正则表达式
2)String[] split(String regex)
根据给定的正则表达式的匹配拆分字符串为字符串数组
需要注意的是:如果匹配regex的子字符串在字符串的首位,
所得数组中会得到一个首部空字符串,
但是尾部不会。
比如:
String str = ":abc:cdad:dsas:das:";
String[]strs = str.split(":");
System.out.println(Arrays.toString(strs));
结果是:
[, abc, cdad, dsas, das]
首部位置多切出了一个空字符串
3)String replaceAll(String regex,String replacement)
使用给定的replacement 替换此字符串所有匹配给定的正则表达式
的子字符串
注意要str = str.replaceAll(String regex,String replacement);是返回一个新字符串,不是对原字符串直接修改了