正则RegExc
?
---恢復(fù)內(nèi)容開始---
什么是正則,正則就是一條規(guī)則,用于檢驗字符串的格式,目標(biāo)就是字符串
正則的定義:
1、var reg=new? RegExp()
2、var ? reg=/格式/
正則的方法有兩個功能
1:test()用于匹配,匹配成功就是true,失敗就是false
2:exec()用于捕獲,有就拿出來
正則修飾符:
1、i:忽略大小寫
2、g:代表全局匹配
3、M:代表多行匹配
?? 用的最多的就是1和2
需要使用修飾符的寫法:
1、var? reg=new? RegExp("hello",g)
2、 var ? reg=/hello/gi
跟正則有關(guān)的字符串的方法:
1、match()查找一個或多個與正則相匹配的,有就返回查找的結(jié)果,沒有就是null
?
?
2、search()匹配和正則相同的字符,有就返回索引,沒有就是-1
3、replace()匹配與正則相同的并替換掉,返回的替換后的字符串
?
正則的方括號:
[abc]代表查找方括號中的任何字符
[^abc]代表查找任何一個不在方括號之間的字符
[0-9]查找0-9之間的數(shù)字
[a-z]查找任何小寫a到小寫z的字符
[A-Z]查找任何大寫A到大寫Z的字符
[A-z]查找大寫A到小寫z的字符
(red|blue|green)三者中的任意一個都行
元字符:
.點代表單個字符
\w代表單詞字符
\W代表非單詞字符
\d代表數(shù)字
\D代表非數(shù)字
\s代表空白字符
\S代表非空白字符
\b代表單詞邊界
\B代表非單詞邊界
\b代表數(shù)字
\B代表非數(shù)字
量詞:
? n+? 代表至少1個n的字符
? n* ?? 代表0個或多個n
? n?? 包含0個或1個n
? N{x} ? 包含x個n
N{x,}包含至少x個n
? N{x,y}? 包含大于等于x個小于等于y個n
N$? 包含以n結(jié)尾的字符串
?? ^n ?? 包含以n開頭的字符串
?=n ? ? 指定字符串后面緊跟的n的字符串
正則的懶惰性
每次在exec()中捕獲的時候,只捕獲第一次的內(nèi)容,而不往下捕獲了,這叫正則的懶惰性,每一次捕獲的開始位置都是從0開始的
如何解決正則的懶惰性呢,用修飾符g來解決,全局匹配
正則的實例對象reg上有一個lastIndex屬性,他是正則捕獲的起始位置
正則的貪婪性:
每一次匹配都是按照最長的出結(jié)果,我們把這種功能叫正則的貪婪性
?
?要解決正則的貪婪性則需要在元字符量詞后面加?
?
?
?
---恢復(fù)內(nèi)容結(jié)束---
轉(zhuǎn)載于:https://www.cnblogs.com/wkxdd/p/10210527.html
總結(jié)
- 上一篇: LuoguP2754 [CTSC1999
- 下一篇: MySQL的Limit详解(转载)