整理记录 RegExp 知识, 查漏补缺, 方便以后查阅.
正则表达式知识详解
正则表达式, 匹配的时候, 可以记忆匹配的字符, 在后面也可以使用
表示
- 字面表达式
var re = /pattern/flags; var re = /abd/i;
- 构造函数
var re = new RegExp(‘pattern’, ‘flags’);
var re = new RegExp(‘abd’);
- 字面表达式
flags
- g 全局搜索
- i 不区分大小写
- m 多行
- y 执行粘性搜索, 匹配从目标字符串的当前位置开始
function
- replace
- test
- match
- split
- search
- exec
pattern
- 使用简单模式匹配
/anc/i - 使用特殊符号模式匹配
- 使用简单模式匹配
字符 | 含义 |
---|---|
* | 匹配前一个表达式0次或多次{0,} |
+ | 匹配前一个表达式1次或多次{1,} |
? | 匹配前一个表达式0次或1次{0,1} |
^ | 匹配输入的开始 |
$ | 匹配输入的结束 |
. | 匹配非换行符以外的任意字符 |
(x) | 匹配x 并记住 x /(foo)(bar)\1\2/ 匹配’foo bar foo bar’; /(foo)(bar)\2\1/ 匹配’foo bar bar foo’ |
(?:x) | 匹配x但不记住 x |
x(?=y) | 匹配后面紧跟y 的 x |
x(?!y) | 匹配后面不是 y 的 x |
x/y | 匹配 x 或 y |
[xyz] | 匹配一个字符集合, 仅匹配一个字符, xyz 中的一个字符 |
[^a-z] | 匹配 非 a-z 中的字符 |
[\b] | 匹配一个退格 |
{n, m} | 匹配前面的字符至少 n 次, 至多 m 次 |
\s | 匹配空白字符包括空格, 换行, 换页, 制表符 |
\d | 匹配数字 |
\w | 匹配一个单字符 [A-Za-z0-9_] |
\n | n 是正整数, 指的(x)记忆的第 n 个字符, 在 replace 等中使用 $n |
\b | 匹配边界 /a\b/ 匹配’abb’ 中的 a; /\ba/ 匹配’bba’ 中的 a |