摘要:分组小括号功能较多有三种功能,作用一,把多带带的项组合成子表达式。作用三,允许后面引用前面的表达式。如果这时的正则表达式是一个非全局的,那么和正则表达式方法拿到的结果相同。,也可以接受一个正则表达式作为参数。
正则表达式创建
字面量创建,a = /abc/gim;
构造函数创建,a = new RegExp("abc","gim")
正则表达式中的特殊字符,
[...] 方括号中的任意字符
[^...] 非方括号中的任意字符
s 空白字符
S 非空白字符
d 数字
D 非数字
w 字母和数字,相当于[a-zA-Z0-9]
W 非字母和数字
重复
{m,n} 介于m到n次之间
{m} 恰好等于m次
{m,} 大于等于m次
? 0次或者1次
* 0次或者n次
+ 1次或者n次
贪婪的匹配
重复的一种,贪婪的匹配即普通的书写方式,尽可能多的匹配;非贪婪的匹配就是尽可能少的匹配,在重复的表示符号后面加上?,例如/a?/,字符串为aaaa,将会匹配第一个a。需要注意的是,/a?b/来匹配aaaab得到的匹配结果是aaaab,而不是ab。
选择
选择通过‘|’来实现,用于分隔供选择的字符。匹配的次序是从左到右,如果左边已经匹配了,就不考虑右边的匹配项了。当然,然后是全局匹配的话可以找出所有的匹配项。
分组
小括号功能较多有三种功能,
1.作用一,把多带带的项组合成子表达式。将一段字符串组成子表达式,例如/java(script)?/就可以用来匹配Java以及JavaScript。
2.作用二,定义子模式,在调用exec方法的时候,返回值的数组第二项开始就是子模式的匹配结果了。
3.作用三,允许后面引用前面的表达式。例如,1引用的是第一个圆括号对应的表达式,2引用的是第二个圆括号对应的表达式。例如要匹配字符串中的子字符串,子字符串的引号应该相同,同为单引号或者同为双引号。在不借助引用的情况下只能这么写,/[""]S[""]/。这样做不到同为单引号或者双引号,可以改为/[""]11/
指明位置
^x 以x为开始
x$ 以x结束
/bjava/ 匹配Java
/Bjava/ 匹配ajava,不匹配Java,因为B表示单词不在这里断
(?=p) 零宽正向断言,后面必须有p,但是不匹配p;这里说的不匹配p意思是通过match函数的返回数组中不包含p,即这里的p只是作为一个条件。例如 /java(?=:)/,它不匹配JavaScript,匹配JavaScript:。
(?!p) 零宽负向断言,后面必须没有p,同时不匹配p。例如/java(?!:)/,它匹配JavaScript,它不匹配JavaScript:。
修饰符
i 忽略大小写
g 全局多次匹配
m 多行匹配
写法实例:/[abc]/gim可以匹配a、b、c、A、B、C。如果字符串有多个,所有的匹配项都可以匹配出来。
/abc$/g,这个表达式至多能匹配出一个匹配项
/abc$/gm,这个表达式可以匹配出多个匹配项,将每次换行都看作是一次结束
正则表达式的方法
这里说的方法,即包括字符串和正则表达式相关的方法,也包括正则表达式自身的方法
字符串的四个方法,
String.search() 查找第一个匹配项的索引
Sring.replace() 第一个参数是正则表达式,如果正则表达式是全局那么将替换掉所有的匹配项
String.match() 得到所有的放回项数组。如果这时的正则表达式是一个非全局的,那么和正则表达式exec()方法拿到的结果相同。
String.split(),也可以接受一个正则表达式作为参数。
regexp有两个方法,分别是exec和test。exec的返回值是一个数组,test的方式值时一个布尔类型。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99013.html
摘要:说来惭愧,做前端快三年对于正则表达式的应用还是很浅薄,大家都知道正则的速度基本上是最快的,但就是懒得去记那些语法和规则,这次项目中多次用到了需要匹配替换的动作,终于下定决心去研究一下了。 说来惭愧,做前端快三年对于正则表达式的应用还是很浅薄,大家都知道正则的速度基本上是最快的,但就是懒得去记那些语法和规则,这次项目中多次用到了需要匹配替换的动作,终于下定决心去研究一下了。 实例化正则对...
摘要:第二阶段该部分内容是学习正则的第二篇内容,点击第一部分查看第一部分的内容。 第二阶段 该部分内容是学习正则的第二篇内容,点击第一部分查看第一部分的内容。 这部分学习的内容包括: 分组 断言 匹配模式(贪婪和懒惰) 分组 我们可以通过量词匹配一个字符多次,但是如果我们想要匹配多个字符多次,就需要用到分组,比如下面一个例子 // 匹配字母和数字连续出现三次的字符 let str = a...
摘要:正则表达式作为前端学习的一个知识点,是每个合格的前端开发都应该掌握它的用法。元字符一般情况下,正则表达式的一个字符对应字符串的一个字符。 正则表达式作为前端学习的一个知识点,是每个合格的前端开发都应该掌握它的用法。正则表达式的学习确实不难,语法和应用也非常简单,能够快速入门,很轻松的就能写出简单的表达式来对字符串执行某些操作。网上也有标题党说一杯咖啡的时间就能学会。能学会吗?能!但要真...
阅读 2503·2023-04-25 19:31
阅读 2236·2021-11-04 16:11
阅读 2803·2021-10-08 10:05
阅读 1513·2021-09-30 09:48
阅读 2313·2019-08-30 15:56
阅读 2404·2019-08-30 15:56
阅读 2171·2019-08-30 15:53
阅读 2265·2019-08-30 15:44