正则表达式
四大功能:判断、分割、替换、获取
\d代表一个数字 0-9
\D代表一个非数字
\w代表一个字符0-9 A-Z a-z,下划线
\W代表一个非字符
. 代表任意一个字符,除了换行符以外
\s代表一个空格
\. 代表一个点
() 代表字符串选择器,(abc|cde|def)
[] 代表字符选择器 与-| ,混用
[a-z] 代表a-z的任意一个字符
[a|b|c] [abc] [a,b,c] 代表abc三个中的一个字符
{}修饰符,通常修饰前面一个正则
\d{3,4} 代表最少三个数字,最多4个数字
\d{3} 代表必须是三位数字
\d{3,} 代表最少三个数字,多了不限
\d{,3} 代表最多三个数字
+ 修饰符,通常修饰前面一个正则
\d+ 代表最少一个数字,最多不限
*修饰符,通常修饰前面一个正则
\d* 代表最少0个数字,最多不限
?修饰符,通常修饰前面一个正则
\d? 代表最少0个数字,最多1个数字
?将正则匹配模式改为非贪婪模式
^ 非
[^a] 代表在此不允许是a这个字母,其他都行
^匹配方向
从左向右 匹配
$匹配方向
从右向左匹配
^()$ 边界界定符
完整匹配整个字符串
```
贪婪与非贪婪模式
贪婪:尽量多的匹配:默认贪婪
非贪婪:尽量少匹配 (用?号表示,加在修饰符后面)
独占模式:
在贪婪模式下用+,不回退
### 忽略大小写
1,(?i)
2,(?-i)
3,(?i:X)
4,(?-i:X)
不带有 - 的是开标志,带有 - 的是关标志。
开启部分(b不区分大小写)的话,就是
String regex = "(?i)b(?-i)ook";
等同于 String regex = "(?i:b)ook";