正则表达式
正则表达式:是由普通字符(a-z)以及特殊字符(元字符)组成的字符模式
普通字符分为打印字符和非打印字符
非打印字符(转义字符)
\cX X值必须为A-Z或a-z之一,否则视为原义c
\f 换页符
\n 换行符
\r 回车符 =\cM
\s 任何空白字符、制表符、换页符
\S 非空白字符
\t 制表符
\v 垂直制表符
特殊字符:
$
() 子表达式的开始和结束位置
? 前子表达式出现零次或一次
* 前子表达式出现零次或多次
+ 前子表达式出现一次或多次
. 任何单一字符
[ 中括号表达式的开始
\ 转义特殊字符、向后引用或八进制转义
^ 输入字符串的开始位置
{ 标记限定符表达式的开始
| 指明两项之间一个选择
限定符(匹配次数)
* 匹配前面表达式零次或多次
+ 匹配前面表达式一次或多次
? 匹配前面表达式零次或一次
{n} n 非负整数 匹配前面表达式的n次
{n,} n 非负整数 匹配前面表达式的至少n次
{n,m} n 非负整数 匹配前面表达式的至少n次,最多m次
定位符:
^ 锚定词首
$ 锚定词尾
\b 匹配一个字边界(表达式 < >)
\B 非字边界匹配,即 匹配的字符既不在词前也不在词尾
\w 匹配单词构成部分,等价于[[:alnum:]] [A-Za-z0-9_]
\W 匹配非单词构成部分,等价于[^[:alnum:]] [^A-Za-z0-9]
字符簇:
[[:alpha:]] 字母
[[:digit:]] 数字0-9
[[:alnum:]] 字母+数字
[[:space:]] 空白字符
[[:upper:]] 大写字母
[[:lower:]] 小写字母
[[:punct:]] 标点符号
[[:xdigit:]] 十六进制数字