正則表達式,學了好多次了,但是沒有經(jīng)過大量的實踐,總是易忘,唉...
通用正則語法
類
[abc]表示匹配a或者b或者c的字符[^abc]表示匹配不是a或者b或者c的字符,^僅在[]中取反,在其他情況下表示邊界范圍類
[a-z]在中括號里面的-表示范圍,如需匹配短橫線,則需在后面再加-,如[0-9-]預定義類:
.匹配除了換行符以外的任何字符\d匹配數(shù)字\s匹配字母,數(shù)字,下劃線\w匹配空格(字母如果變大寫則表示取反)
邊界
^ $為起始邊界\b單詞邊界\B非單詞邊界
量詞
?匹配0個或1個+匹配 >=1 個*匹配任意多個{n,m}a為最少,b為最多。若為{n},則為精確匹配;若為{n,},則匹配大于n個
匹配模式
默認的匹配模式是貪婪模式(即盡可能多的匹配)
若想將貪婪模式改成“廉潔模式(自創(chuàng))”,只需在量詞后面加上“ ? ”
默認情況下,量詞制作用于緊挨著它的字符。如果想要破,可以用
()來進行分組用
()來進行分組后的分組內(nèi)容可以用$1,$2,...來獲取
JS中的正則
正則對象
正則對象的屬性有
g,i,m,lastIndextest方法,返回布爾值exec方法,匹配不成功返回null,否則返回結(jié)果數(shù)組,數(shù)組的第一個元素表示匹配的文本,第二個元素是與正則對象的第一個子表達式相匹配的文本(如果有),以此類推
與正則相關(guān)的字符串方法
-
search方法,返回第一個匹配結(jié)果的index,否則返回null(它不會執(zhí)行全局匹配) -
match方法,如果不加‘ g ’,則返回null或數(shù)組,數(shù)組存放了與它找到的匹配文本有關(guān)的信息,第一個元素是匹配的文本,其余元素存放子表達式匹配的內(nèi)容