正则表达式

1、1个字符

. 除换行符外 --
d 数字 [0-9]
D 非数字 [^0-9]
w 数字字母下划线 [0-9a-zA-Z_]
W 非数字字母下划线 [^0-9a-zA-Z_]
s 空格 --
S 非空格 --

2、特殊符号与边界

[] 匹配[]内任意1个字符
(exp) 捕获性分组
(?:exp) 非捕获性分组
(?=exp) 非捕获性分组,出现exp则匹配
(?!exp) 非捕获性分组,不出现exp则匹配
a|b 匹配a或b
^ 匹配开头
$ 匹配结尾
 匹配单词边界
B 匹配非单词边界

3、重复

? 重复0-1次 {0,1}
* 重复>=0次 {0,}
+ 重复>=1次 {1,}
{n} 重复n次 --
{n,} 重复>=n次 --
{m,n} 重复m-n次 --

4、贪婪与惰性匹配

贪婪惰性
? ??
* *?
+ +?

5、反向引用

由()标识的分组从1开始编号。

用于表达式中,匹配之前出现过的字符串
$n 用于匹配结束后获取捕获的分组,如str.replace(reg, '$1'),RegExp.$1

7、可选参数

用法:/exp/gi

i 大小写不敏感(默认敏感)
g 全局匹配(默认只匹配1次)
m 支持多行

8、相关方法

String对象RegExp对象

match(pattern) : Array,匹配位置,原字符串

split(pattern) : Array

search(pattern) : 匹配位置

replace(pattern, str) : string

test(str) : Bool

exec(str) : Array, 匹配位置,原字符串

原文地址:https://www.cnblogs.com/koukabatsugun/p/3413350.html