Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
107 lines (89 sloc) 4.59 KB
title category layout ads tags updated weight description intro
Regexp
tools
2017/sheet
false
Featured
2017-12-04
-10
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串

Getting started

字符集

Code Description
\s 匹配空白符, 等价于 [\t\v\n\r\f]
\S 匹配非空白符, 等价于 [^\t\v\n\r\f]
\d 匹配数字, 等价于 [0-9]
\D 匹配非数字, 等价于 [^0-9]
\w 匹配单词字符, 等价于 [a-zA-Z0-9_]
\W 匹配非单词字符, 等价于 [^a-zA-Z0-9_]
\cx 匹配由 x 指明的控制字符, 例如: \cM 匹配一个 Control-M 或回车符

量词

| {n} | n 是一个非负整数, 匹配前面的子表达式 n 次, 贪婪模式 | | {n,} | n 是一个非负整数, 匹配前面的子表达式至少 n 次, 贪婪模式 | | {n,m}| mn 均为非负整数, 其中 n<=m, 最少匹配 n 次且最多匹配 m 次, 贪婪模式 | | * | 匹配前面的子表达式零次或多次, 等价于 {0,}, 贪婪模式 | | + | 匹配前面的子表达式一次或多次, 等价于 {1,}, 贪婪模式 | | ? | 匹配前面的子表达式零次或一次, 等价于 {0,1}, 贪婪模式 | | {n}? | n 是一个非负整数, 匹配前面的子表达式 n 次, 惰性模式 | | {n,}?| n 是一个非负整数, 匹配前面的子表达式至少 n 次, 惰性模式 | | {n,m}?| mn 均为非负整数, 其中 n<=m, 最少匹配 n 次且最多匹配 m 次, 惰性模式 | | *? | 匹配前面的子表达式零次或多次, 等价于 {0,}?, 惰性模式 | | +? | 匹配前面的子表达式一次或多次, 等价于 {1,}?, 惰性模式 | | ?? | 匹配前面的子表达式零次或一次, 等价于 {0,1}?, 惰性模式 |

定界符

| ^ | 匹配开头的位置, 当正则有修饰符 m 时, 表示匹配行开头位置 | | $ | 匹配结尾的位置, 当正则有修饰符 m 时, 表示匹配行结尾位置 | | \A | 仅匹配字符串开头 | | \Z | 仅匹配字符串末尾 | | \b | 匹配单词边界, 即, \w\W^\w\w$ 之间的位置 | | \B | 匹配非单词边界, 即, \w\w\W\W^\W, \W$ 之间的位置 |

特殊字符

| \n | 匹配换行符 | | \r | 匹配回车符 | | \t | 匹配水平制表符 | | \v | 匹配垂直制表符 | | \f | 匹配换页符 | | \xhh | 匹配拉丁字符。比如 \xOA 等价于 \n | | \uxxxx | 匹配 Unicode 字符。比如 \u2028 匹配行终止符 |

分组与范围

| . | 通配符, 匹配除了少数字符(\n)之外的任意字符 | | (ab) | 捕获型分组, 把 "ab" 当成一个整体, 比如 (ab)+ 表示 "ab" 至少连续出现一次 | | (?:ab) | 非捕获型分组, 与 (ab) 的区别是, 它不捕获数据 | | (abc|xyz) | 捕获型分支结构, 匹配 "abc""xyz" | | (?:abc|xyz) | 非捕获型分支结构, 与 (abc|xyz) 的区别是, 它不捕获数据 | | [abc] | 匹配 abc 其中任何一个字符 | | [^abc] | 匹配除了 abc 之外的任何一个字符 | | [a-z] | 字符范围, 匹配指定范围内的任意字符 | | [^a-z] | 负值字符范围, 匹配任何不在指定范围内的任意字符 | | \num | 向后引用, 匹配第 num 个用小括号括起来的分组, 其中 num 是从 1 开始的十进制正整数 |

修饰符

| g | 全局匹配, 找到所有满足匹配的子串 | | i | 匹配过程中, 忽略英文字母大小写 | | m | 多行匹配, 把 ^$ 变成行开头和行结尾 | | s | 使用单行模式 |

POSIX

| [:alnum:] | 字母字符和数字字符 | | [:alpha:] | 字母 | | [:digit:] | 数字字符 | | [:ascii:] | ASCII 字符 | | [:blank:] | 空格字符和制表符 | | [:space:] | 空白字符 | | [:cntrl:] | 控制字符 | | [:print:] | 可打印字符 | | [:graph:] | 可打印的非空白字符 | | [:punct:] | 标点符号 | | [:upper:] | 大写字母字符 | | [:lower:] | 小写字母字符 | | [:word:] | 字母字符 | | [:xdigit:] | 十六进制字符 |

需转义字符

| ^ | [ | . | $ | { | * | ( | ) | \ | + | | | ? | < | >