正则
字符表(匹配内容)
元字符 | 说明 | 示例 |
---|---|---|
. | 匹配除换行符外的任意字符 | |
\d | 匹配任意一个数字 | [0-9] |
\D | 与除了数字以外的任何一个字符匹配 | [^0-9] |
\w | 与任意一个英文字母,数字或下划线匹配 | [a-zA-Z_] |
\W | 除了字母,数字或下划线外与任何字符匹配 | [^a-za-z_] |
\s | 任意一个空白字符匹配,如空格,制表符\t ,换行符\n | [\n\f\r\t\v] |
\S | 除了空白符外任意一个字符匹配 | [^\n\f\r\t\v] |
字符(开始结束)
边界符 | 说明 |
---|---|
^ | 匹配字符串的开始位置。 |
$ | 匹配字符串的结束位置。 |
正则模式修饰符
修饰符 | 说明 |
---|---|
i | 不区分大小写字母的匹配 |
g | 全局搜索所有匹配内容 |
m | 使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。 (主要针对 ^ 和 $ ) |
s | 视为单行忽略换行符,使用. 可以匹配所有字符。 (. 是除换行符外的所有字符) |
y | 从 regexp.lastIndex 开始匹配 |
u | 正确处理四个字符的 UTF-16 编码 |
限定符
符号 | 说明 |
---|---|
? | 重复零次或一次 |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
{n} | 重复 n 次 |
{n,} | 重复 n 次或更多次 |
{n,m} | 重复 n 到 m 次 |
禁止贪婪
正则表达式在进行重复匹配时,默认是贪婪匹配模式,会尽量匹配更多内容,可以通过?
进行修饰来禁止重复匹配。
使用 | 说明 |
---|---|
?? | 重复 0 次或 1 次,但尽可能少重复 |
*? | 重复 0 次或多次,但尽可能少重复 |
+? | 重复 1 次或更多次,但尽可能少重复 |
{n,m}? | 重复 n 到 m 次,但尽可能少重复 |
{n,}? | 重复 n 次以上,但尽可能少重复 |
正则中 ()
、 []
、{}
^ 在 ()
、 []
中表示否的意思。
javascript
[0-9] // 所有数字
[^0-9] // 除数字外的字符
[0-9] // 所有数字
[^0-9] // 除数字外的字符
使用 | 说明 |
---|---|
() | 匹配组,后面可以继续复用(\1,\2.....),非捕获组(?:XXX),命名捕获组(?<名称>) |
[] | 匹配中括号里出现的字符 |
{} | 限定符 |
匹配所有内容
javascript
/.*/
/[\s\S]+/
/[\d\D]+/
/.*/
/[\s\S]+/
/[\d\D]+/
正则断言
使用 | 说明 |
---|---|
?=xx | 正向零宽匹配:匹配字符位置后的条件 |
?!xx | 正向零宽不匹配:匹配字符位置后的条件(非) |
?<=xx | 负向零宽匹配: 匹配字符位置前的条件 |
?<!xx | 负向零宽不匹配:匹配字符位置前的条件(非) |