REGEXP:由一类特殊字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能
分两类:
基本正则表达式:BRE
扩展正则表达式:ERE
基本正则表达式元字符
字符匹配
. :匹配任意单个字符
[] :匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
匹配次数
* :匹配前面字符任意次
.* :匹配任意长度任意字符
? :匹配前面的字符0次或1次
+ :匹配前面的字符至少一次
{m} :匹配前面的字符m次
{m,} :匹配前面的字符至少m次
{0,n} :匹配前面的字符至多n次
{m,n} :匹配前面的字符至少m次,至多n次
位置锚定
^ :锚定行首
$ :锚定行尾
<或 :锚定词首
>或 :锚定词尾
<PATTERN>:匹配整个单词
分组
() :将一个或多个字符捆绑在一起,当做一个整体进行处理
NOTE:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式:1,2,3
1:从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配的字符
后向引用:引用前面的分组括号中的模式所匹配的字符,而非模式本身
扩展正则表达式元字符
字符匹配
.:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
匹配次数
*:匹配前面的字符任意次
?:匹配前面的字符0次或1次
+:匹配前面的字符至少一次
{m}:匹配前面的字符m次
{m,}:匹配前面的字符至少m次
{0,n}:匹配前面的字符至多n次
{m,n}:匹配前面的字符至少m次,至多n次
位置锚定
^:行首锚定
$:行尾锚定
<:词首锚定
>:词尾锚定
<PATTERN>:匹配整个单词
分组:()
后向引用:1,2,3...
或者:
a|b
C|cat:C或者cat