2.9 KiB
2.9 KiB
title | date | tags | categories | weight | show_comments | draft | ||
---|---|---|---|---|---|---|---|---|
正则表达式随笔 | 2019-08-03 16:03:45 +0800 |
|
|
50 | true | false |
POSIX基础正则表达式
纯文本
以文本形式直接写出需要匹配的内容
abc
===>abc
特殊字符
.*[*^${}+?\|()
锚字符
- 行首 ^
- 行尾 $
^$
===> 匹配空行
点号字符
匹配换行字符之外的任意单个字符, 必须匹配一个字符
a.c
===>abc
,a c
字符组
使用方括号定义一个字符组, 方括号中包含素有希望出现在该字符组中的字符
a[bcd]b
===>abb
,acb
,adb
排除型字符组
在普通字符组的起始字符写出一个脱字符^
, 即可匹配字符组之外的所有字符, 换行符除外
a[^bcd]b
===>aab
区间
在字符组中单破折号可在字符组中用作区间
a[b-f]b
=a[bcdef]b
===>abb
,acb
,adb
,aeb
,afb
特殊字符组
组 | 描述 |
---|---|
:alpha: | 匹配任意字母字符, 不管大写还是小写 |
:alnum: | 匹配任意字母数字字符0-9, a-z, A-Z |
:blank: | 匹配空格或制表符 |
:digit: | 匹配0-9之间的数字 |
:lower: | 匹配小写字符a-z |
:print: | 匹配任意可打印字符 |
:punct: | 匹配标点符号 |
:space: | 匹配任意空白字符: 空格, 制表符, NL, FF, VT和CR |
:upper: | 匹配任意大写字母字符A-Z |
a[[:alnum:]]c
===>abc
,a1c
,a8c
星号
在字符后面放置星号表明该字符必须在匹配模式的文本中出现0次或多次
a[bc]\*c
===>abc
,acc
,ac
,abcc
,abbbbbc
POSIX拓展正则表达式
问号
在字符后面放置星号表明该字符必须在匹配模式的文本中出现0次或1次
ab?c
===>ac
,abc
加号
在字符后面放置加号表明该字符必须在匹配模式的文本中出现1次或多次
ab+c
===>abc
,abbc
,abbbc
花括号
花括号标识允许为可重复的正则表达式指定一个上下限, 通常称为间隔
m
: 正则表达式准确出现m次m,n
: 正则表达式出现至少m次, 至多n次
ab{2}c
===>abbc
ab{1,2}c
===>abc
,abbc
竖线
表示在检查数据流时, 使用逻辑或的方式指定两个或多个匹配模式
a(b|c)c
===>abc
,acc
abc|abb
===>abc
,abb
圆括号
圆括号用于对正则表达式模式进行分组, 分组时, 该组会被视为一个标准字符, 可以向对普通字符一样给该组用特殊字符来限制匹配
Sat(urday)?
===>Sat
,Saturday