正则表达式分为两类:
*基本正则表达式
*扩展正则表达式
基本正则表达式的字符:
[.]匹配任意单个字符
[] 匹配指定范围内的任意单个字符,
[^] 匹配指定范围外的任意单个字符,示例:
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母
[:blank:] 空白字符
[:space:] 水平和垂直的空白字符
[:cntrl:] 不可打印的控制字符
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
位置锚定:
位置锚定可以用于定位出现的位置
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
1*$ 空白行
< 或 \b 词首锚定,用于单词模式的左侧
> 或 \b 词尾锚定,用于单词模式的右侧
<PATTERN> 匹配整个单词
匹配次数
用在要制定的字符后面,用于指定前面的字符要出现的次数
匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
. 任意长度的任意字符
? 匹配其前面的字符0或1次,即:可有可无
+ 匹配其前面的字符至少1次,即:肯定有
{n} 匹配前面的字符n次
{m,n} 匹配前面的字符至少m次,至多n次
{,n} 匹配前面的字符至多n次
{n,} 匹配前面的字符至少n次
扩展正则表达式的字符
[.]任意单个字符
[wang] 指定范围的字符
[^wang] 不在指定范围的字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母
[:blank:] 空白字符
[:space:] 水平和垂直的空白字符
[:cntrl:] 不可打印的控制字符
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
位置锚定
^ 行首
$ 行尾
<, \b 语首
>, \b 语尾
次数匹配
*匹配前面字符任意次
? 0或1次
+1次或多次
{n} 匹配n次
{m,n} 至少m,至多n次
[:space:] ↩︎