可视化正则表达式网站:
regexper.com
1. 单字符
任何可见字符,如:字母a ~ z,数字1 ~ 9,汉字'爱'
2. 特殊字符
特殊字符 | 正则表达式 | 记忆方式 |
---|---|---|
换行符 | \n | newline |
换页符 | \f | form feed |
回车符 | \r | return |
空白符 | \s | space |
制表符 | \t | tab |
垂直制表符 | \v | vertical tab |
回退符 | [\b] | backspace 与\b(分界符) 区分 |
3. 元字符 / 符号
正则表达式 | 匹配区间 | 记忆方式 |
---|---|---|
\d | 单个数字,[0-9] | digit |
\D | 除了[0-9] | not digit |
\w | 包括下划线'_'在内的单个字符,含[A-Za-z0-9] | word |
\W | 非单字字符 | not word |
\s | 匹配空白字符,含空格、制表符、换页符、换行符、回车符 | space |
\S | 匹配非空白字符 | not space |
. | 除了换行符之外的任何字符 | 句号. 除了句子结束符 |
{min, max} | 匹配字符出现的次数 | 如 \d{1,7}: 匹配1 ~7 数字,a{3}:字母a出现3次 |
[] | 表示区间 | 如 [a-z]: 匹配a-z区间中一个元素 |
* | 用来表示匹配0个字符或无数个字符。通常用来过滤某些可有可无的字符串 | >= 0,如 a*: 匹配出现0个或多个字母a |
+ | 适用于要匹配同个字符出现1次或多次的情况 | >= 1 |
? | 用来匹配1个或0个字符 | 0/1, 如 colou?r: 匹配color 或 colour |
\b | ||
() | 正则分组符号,用来包装子正则表达式 | 如 (\d{1,3})@(\w)(.com) |
\ 1 ('\ + 数字'形式) | 指代分组1匹配的结果 | 如 ([^_]\w{1,5})(\1)#(dev): 分组2位置使用分组1匹配的结果作为正则匹配模式 |
3. 位置边界
-
单词分界符:
\b
如果要匹配单词cat
,而非单词category
,则需要用到单词边界符:\b
示例:/\bcat\b/ -
字符串边界符 :
^
(字符串开始)$
(字符串结尾)
示例:/^I am a dever.$/ -
其他的:
\B
: 非单词边界 (not boundary)
m
: 多行匹配模式 (multiple of lines)/ok regular expression/m
i
: 忽略大小写 (ignore case)/\w{2,6}@qq.com/i
g
: 全局匹配模式 (global)示例:/\d{1,3}#\s/g
(?=regex)
: 前向查找 示例: /ap(?=ple)/ 查找apple,而非plement
(?!regex)
: 非前向查找
(?<=regex)
: 后向查找 示例: /(?<=ple)ment/ 查找ple但不匹配apple里的
(?:regex)
: 非捕获组
4. 逻辑处理
逻辑关系 | 正则元字符 |
---|---|
与 | 默认regex间连接是与关系 |
或 | 竖线/ |
非 | [^regex] 和 ! |
网友评论