英文或数字 \w
一整个单词用\w+
非英文或数字 \W
中文字符 [\u4e00-\u9fa5]
英文单词 [a-zA-Z]+
数字 [0-9]+
匹配到的字符 $&
空白字符 \s
任意非空白字符 \S
修饰符
修饰符 | 含义 | 描述 |
---|---|---|
i | ignore - 不区分大小写 | 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。 |
g | global - 全局匹配 | 查找所有的匹配项。 |
m | multi line - 多行匹配 | 使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。 |
s | 特殊字符圆点 . 中包含换行符 \n | 默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。 |
元字符
元字符 | 描述 | 示例 |
---|---|---|
\ | 转义符,将特殊字符进行转义,忽略其特殊意义 | a.b 匹配a.b,但不能匹配 ajb,. 被转义为特殊意义 |
^ | 匹配行首,awk 中,^则是匹配字符串的开始 | ^tux 匹配以 tux 开头的行 |
$ | 匹配行尾,awk 中,$则是匹配字符串的结尾 | tux$ 匹配以 tux 结尾的行 |
. | 匹配除换行符\n 之外的任意单个字符 | ab. 匹配 abc 或 abd,不可匹配 abcd 或 abde,只能匹配单字符 |
[ ] | 匹配包含在[字符]之中的任意一个字符 | coo[kl]可以匹配 cook 或 cool |
[^] | 匹配[^字符]之外的任意一个字符 | 123[^45]不可以匹配 1234 或 1235,1236、1237 都可以 |
[-] | 匹配[]中指定范围内的任意一个字符,要写成递增 | [0-9]可以匹配 1、2 或 3 等其中任意一个数字 |
? | 匹配之前的项 1 次或者 0 次 colou? r | 可以匹配 color 或者 colour,不能匹配 colouur |
+ | 匹配之前的项 1 次或者多次 | sa-6+匹配 sa-6、sa-666,不能匹配 sa- |
* | 匹配之前的项 0 次或者多次 | co*l 匹配 cl、col、cool、coool 等 |
() | 匹配表达式,创建一个用于匹配的子串 | ma (tri)? 匹配 max 或 maxtrix |
{n} | 匹配之前的项 n 次,n 是可以为 0 的正整数 | [0-9]{3}匹配任意一个三位数,可以扩展为[0-9][0-9][0-9] |
{n,} | 之前的项至少需要匹配 n 次 | [0-9]{2,}匹配任意一个两位数或更多位数不支持{n,}{n,}{n,} |
{n, m} | 指定之前的项至少匹配 n 次,最多匹配 m 次,n<=m | [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字 |
| | 交替匹配,两边的任意一项 | ab (c|d)匹配 abc 或 abd |