正则表达式
1.正则表达式的作用
1.1搜索指定模式的字符串
1.2验证字符串是否符合某种模式(比如,电话号码,邮件,密码等)
1.3替换字符串中指定模式的子字符串。适合用于批量替换一定规律的字符串
2.正则表达式的基本定义
2.1直接量字符
\o NUL字符(\u0000)
\t 制表符(\u0009)
\n 换行符(\u000A)
\v 垂直制表符(\u000B)
\f 换页符(\u000C)
\r 回车符(\u000D)
\xnn 由十六进制nn指定的拉丁字符,例如\x0A等价于\n
\uxxx 由十六进制数xxxx指定的Unicode字符,例如\u0009等价于\t
\cX 控制字符^X,例如,\cJ等价于换行符\n
2.2字符类
[...] 匹配方括号内的任意字符
[^...] 匹配不在方括号内的任意字符
. 匹配除换行符和其他Unicode行终止符之外的任意字符
\w 匹配任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
\W 匹配任何不是ASCII字符组成的单词,等价于[^a-zA-Z0-9]
\s 匹配任何Unidoce空白符
\S 匹配任何非Unicode空白符的字符
\d 匹配任何ASCII数字,等价于[0-9]
\D 匹配任何非ASCII数字的字符,等价于[^0-9]
[\b] 匹配退格直接量
2.3重复字符语法
{n,m} 匹配前一项至少n次,最多m次
{n,} 匹配前一项至少n次
{n} 匹配前一项n次
? 匹配前一项0次或1次,等价于{0,1}
+ 匹配前一项1次或多次,等价于{1,}
* 匹配前一项0次或多次,等价于{0,}
2.4选择、分组、引用字符
| 选择,匹配的是该符号左边的子表达式或右边的子表达式
(...) 组合,将几个项组合为一个单元,这个单元可通过 * + ? | 等符号加以修饰,而且可以记住和这个组合相匹配的字符串以供此后的引用使用
(?:...) 只组合,把项组合到一个单元,但不记忆与该组匹配的字符
\n 和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式
2.5锚字符
^ 匹配字符串的开头、在多行检索中,匹配一行的开头
$ 匹配字符串的结尾、在多行检索中,匹配一行的结尾
\b 匹配一个单词的边界位置
\B 匹配非单词边界的位置
3.正则表达式的应用例子