正则表达式的使用是时候来波小结了!

136 阅读1分钟

一、正则表达式基础储备

1.1 量词

{m,n} 表示匹配前面的字符m-n次

?等价与{0,1}

+等价于{1,}

*等价于{0,}

默认匹配为贪婪匹配,即尽可能的多匹配,在这些量词后面加上?即可实现惰性匹配(多选分支结构|也是惰性的)

1.2 分组

括号提供分组功能

1.3 标记字符

image.png

二、正则表达式常用方法

2.1只是为了判断是否匹配(true或 false)可以使用str.search(regexp)或regexObj.test(str)

str.search(regexp)

如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。

image.png

image.png

regexObj.test(str)

test() 方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回 true 或 false。

如果正则表达式设置了全局标志,test() 的执行会改变正则表达式 lastIndex属性。连续的执行test()方法,后续的执行将会从 lastIndex 处开始匹配字符串

image.png

image.png

2.2当要了解更多匹配信息时,可以使用str.match(regexp)或regexObj.exec(str)

str.match(regexp)

如果如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组(Array)。

如果使用g标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。

image.png

image.png

regexobj.exec(str)

如果匹配成功,exec() 方法返回一个数组,更新正则表达式对象的 lastIndex 属性。

当正则表达式使用 "g" 标志时,可以多次执行 exec 方法来查找同一个字符串中

image.png

image.png

参考:正则表达式