一、基本正则表达式
字符匹配
. : 匹配任意单个字符
[] : 匹配中括号中的任意单个字符
[^] : 匹配指定范围外的任意单个字符
空白字符:[:space:]、数字:[:digit:]、小写字母:[:lower:]、大写字母:[:upper:]、大小写字母:[:alpha:]、字母和数字[:alnum:]、标点符号:[:punct:]
匹配次数
* : 匹配前面的字符任意次
\? : 匹配前面的字符0或1次
\+ : 匹配前面的字符至少1次
\{m\}: 匹配前面的字符m次
\{m,n\}: 匹配前面的字符至少m次,至多n次
\{0,n\}:匹配前面的字符至多n次
\{m,\}: 匹配前面的字符至少m次
位置锚定
^ : 行首锚定
$: 行尾锚定
^PATTERN$: 用于模式匹配整行
^$: 匹配空行
^[[:space:]*]$
\< 或 \b: 词首锚定
\> 或 \b: 词尾锚定
\<PATTERN\>: 匹配整个单词
分组:
\(\): 将一个或多个字符捆绑在一起,当做一个整体进行处理
\(xy\)*ab
Note:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式:\1 \2 \3
\1: 从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
二、扩展的正则表达式
字符匹配:
. : 匹配任意单个字符
[] : 匹配括号内的任意单个字符
[^] : 匹配指定范围外的字符
次数匹配
* : 匹配前面的字符任意次
?: 匹配前面的字符的0或1次
+ : 匹配前面的字符至少1次
{m} : 匹配前面的字符m次
{m,n} : 匹配前面的字符至少m次,至多n次
位置锚定:
^ : 锚定行首
$ : 锚定行尾
\<, \b : 词首锚定
\>, \b : 词尾锚定
分组
()
后向引用: \1,\2,...