正则表达式基本语法##
1.1字符集和单词
.用于匹配除换行符之外的任意的一个字符
方括号[]用于指定一个字符集,只能匹配其中的一个字符
连字符-用于描述一个范围
为了严格匹配一个单词,需要加上<和>
ps:正则表达式中对单词的定义,单词指的是两侧由非单词字符分割的字符串。非单词指的是字幕、数字、下划线以为的所有字符
1.2字符类
类 | 匹配字符 |
---|---|
[[:alnum:]] | 文字、数字字符 |
[[:alpha:]] | 字母字符 |
[[:lower:]] | 小写字母 |
[["upper"]] | 大写字母 |
[[:digit:]] | 小数 |
[[:xdigit:]] | 十六进制数字 |
[[:punct:]] | 标点符号 |
[[blank]] | 制表符和空格 |
[[:space:]] | 空格 |
[[:cntrl:]] | 所有控制符 |
[[:print:]] | 所有可打印的字符 |
[[:graph:]] | 除空格外所有可打印的字符 |
1.3位置匹配
^和$分别用于匹配行首和行尾。
1.4转义字符
\表示转义
1.5重复
元字符 | 描述 |
---|---|
* | 重复0次或更多次 |
+ | 重复一次或更多次 |
? | 重复0次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复不少于n次,不多于m次 |
1.6反义
[^y]表示除了字母y的任何字符
注意:^放在行首和反义时的区别
[y] ##匹配所有不以字母y开头的行
1.7分支
|表示分支
1.8逆向引用
在子表达式中捕获的内容可以在正则表达式中的其他地方再次使用,用户可以使用反斜杠""加上子表达式的编号来指代该分组分配到的内容。