正则表达式
正则:检测字符串的一条规则。
Json的本质还是字符串,
正则的定义,简写 /规则/ 比如/456123/ 检测字符串必须包含45612
字符串和正则有关的方法。
match() 查找找到一个或多个正则表达式的匹配,有就返回查找的结果,没有就是null
语法,string.match(reg);
Search()查找与正则表达式相匹配的值,检索不到返回-1,检索到了,返回首次在字符串中的位置,
语法,string.search(reg);
Replace()在字符串中查找匹配的子串,并替换与正则匹配的子串
语法,string.replace(reg,newstring)
注意的
1,字符串中的,在正则中如果就代表一个,需要转意\.
/./代表任意一个字符,/\./代表一个.
2,正则对象的两个方法
test();检索字符串中的值,返回true或false
语法 reg.test(string);
esex();检索字符中指定的值,返回一个数组,有找到的值并确定其位置找不到返回null
语法reg.exec(string)
正则的特质
1,正则的懒惰性,
正则在捕获的时候,当第一次捕获成功了就直接返回,不在向下捕获,这就叫做正则的懒惰性,
解决正则的懒惰性,
在正则的后面加上修饰符/g
2,正则的贪婪性
/\d/去捕获一个字符串中的数字,他会尽可能多的捕获全部条件的,这叫正则的贪婪性。
解决正则的贪婪性,/\d+/ +代表1个或多个 ?代表0个或1个,在+后面跟一个? /\d+?/ 代表1个。
字符串检索,分两种结果,
第一种是查找型 查找到就终止,不会向下继续查找。
第二种是捕获型。分两种,第一是捕获首次出现的,第二种事捕获所有的。/g
分组捕获()这是分组捕获的标志,将大正则分组成几个小正则,在正则中,\1代表第一个分组,\2代表第二个分组。
比如 /(a)(b)\1\2/代表的abab这个规则。
在分组捕获中
结果既返回了大正则的捕获结果,也返回了小正则的捕获结果
如果不想捕获某一个分组中的内容,在对应的分组中前面加上?:就可以了,同时分组引用(\1\2)也失效了
一旦分组捕获成功,会在正则的类上会给$1,$2赋值。
RegExp.$1也是分组引用 ,也能在正则外起作用。
\1,也是分组引用,只能在正则中起作用
preg_match()执行一个正则表达式匹配
参数1是reg 参数2是string 返回值是0或1,查到就是1,查不到就是0.
Preg_match_all()执行一个全局正则表达式匹配
参数1是reg 参数2是string,返回值是0和nn是查找到的总次数,0是没有查到
Preg_replace()指向一个正则表达式的替换,
参数1是reg 参数2是newstring 参数3是检索的string,返回值是替换后的新的字符串。
第三个参数还可以是数组,返回值也是数组
Perg split
参数1是reg 参数2是string,
浙公网安备 33010602011771号