正则学习

正则

正:正确 则:规则 正则就是正确的规则 处理字符串的一种规则
处理1 正则匹配 验证当前字符串是否符合该规则的子串
​ 处理2 正则捕获 获取到符合规则的字符

正则定义

1正则字面量

var reg = /d/g;

2new创建

var reg2 = new RegExp("d","g");

正则 元字符 修饰符

修饰符

//这里的符号是修饰符

修饰符 i

​ignoreCase 忽略大小写

修饰符 g

​global 全局匹配

修饰符 m

multiline 多行匹配

元字符

/里面的符号就叫做元字符/

特殊的元字符

d 0~9任意一个数字
D 非0~9之间的任意字符
w 字母数字下划线
W 非字母数字下划线
s 匹配任意一个空白字符(包括制表符)
 匹配边界符 "hello-world" hello的左边界符是"右边界符是- world左边界符是- 右边界符是"
匹配一个换行符号
叫做转义字符
1.把普通的字符转换为特殊的字符
2.把特殊的转化为普通的 例如把. 转化为小数点.
. 表示出了 之外的任意字符
^ 以某个字符开始
$以某个字符结尾
a|b a或者b任意一个
[158]不是一百五十八 是1或者5或者8 任意选一个
[abc] a或者b或者c任意一个
[^abc]出了a或者b或者c之外的任意一个
[a-z]表示a到z中任意一个字母
[0-9]0到9之间任意一个数字 等价于d
[^a-z]不是a到z之间任意的字母
()分组
(?:)当前分组只匹配不捕获
(?=)正向预查
(?!)反向预查

量词元字符

(*) 出现零次到多次 等价于{0,}
? 出现零次到一次 等价于{0,1}
+出现一次到多次 等价于{1,}
{m}出现m次
{m,}出现至少m次
{m,n}出现m~n次

普通元字符

/123/123就是普通的

中括号细节

[.]中括号里面的字符绝大多数已经只是一个普通的字符了 失去了特殊字符的含义了
[d]还是表示0-9的任意数字
中括号出现的两位数 不是数学的两位数 是两个符号 是两个字符

正则方法

reg.exec() 字符串中正则的匹配项
匹配到的是一个数组
0 是捕获的内容
index 是捕获的索引
input 是被检测的字符串
执行一次exec方法只能捕获到第一个匹配的 正则捕获懒惰性
正则捕获懒惰性的原因就是lastIndex属性不变
要想改变正则捕获懒惰性,只能在正则后面加修饰符g
reg.test()测试字符串是否匹配 匹配返回true 不匹配返回false

原文地址:https://www.cnblogs.com/my466879168/p/10330353.html