正则解析 -> Regular Expression
语法:使用元字符进行排列组合用来匹配字符串,在线练习网址
https://tool.oschina.net/regex/
元字符:具有固定含义的特殊符号 默认匹配一位
. 匹配除换行符外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符(空格、换行、回车)
\d 匹配数字
\n 匹配换行符
\t 匹配制表符(tab)
校验常用
^ 匹配字符串的开始 ^\d\d\d\d 表明从前面开始的4个字符全是数字
$ 匹配字符串的结尾 \d\d\d\d$ 表明从后面开始的4个字符全是数字
\W 匹配非字母和非数字和非下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配字符a或字符b
() 匹配括号内的表达式,也表示一个组
[...] 匹配括号内的表达式(匹配一位) [abcde12345] 表明匹配[]内的字符一次
[a-z1-9] 匹配字母和数字
[^...] 匹配除^后表达式的字符
量词:控制前面元字符出现的次数
* 重复0次或更多次
+ 重复1次或更多次
? 重复1次或0次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n次到m次
贪婪匹配和惰性匹配
.*? 惰性匹配(尽可能少的匹配)
.* 贪婪匹配(尽可能多的匹配)
.*x 匹配到x,然后继续重新匹配
Java String类中的matches()方法 不仅可以匹配固定字符串 还能匹配符合一个模式的字符串集 返回类型是boolean类型
类似的还有replaceFirst()和replaceAll()
String[] tokens = str.split(regex,limit)
limit参数默认为0 实际匹配为最多为limit-1次
注意
括符(和)在正则表达式中是特殊字符,用于对模式分组。为了在正则表达式中表示字面值(或者),必须使用\\(和\\)