RegExp記錄

斷言 :表示一個匹配在某些條件下發(fā)生。斷言包含先行斷言、后行斷言和條件表達(dá)式。
字符類 :區(qū)分不同類型的字符,例如區(qū)分字母和數(shù)字。
組和范圍:表示表達(dá)式字符的分組和范圍。
量詞 :表示匹配的字符或表達(dá)式的數(shù)量。
UniCode轉(zhuǎn)義 :基于 unicode 字符屬性區(qū)分字符。例如大寫和小寫字母、數(shù)學(xué)符號和標(biāo)點(diǎn)。
? 非貪婪 、貪婪模式 ;

如果?緊跟在任何量詞 *、 +、? 或 {} 的后面,將會使量詞變?yōu)榉秦澙罚ㄆヅ浔M量少的字符),和缺省使用的貪婪模式(匹配盡可能多的字符)正好相反。例如,對 "123abc" 使用 /\d+/ 將會匹配 "123"(貪婪模式),而使用 /\d+?/ 則只會匹配到 "1" (非貪婪模式)。

(x)

括號,它在正則表達(dá)式中常用作記憶設(shè)備。即這部分所匹配的字符將會被記住以備后續(xù)使用
其中括號被稱為捕獲括號。
模式 /(foo) (bar) \1 \2/ 中的 '(foo)' 和 '(bar)' 匹配并記住字符串 "foo bar foo bar" 中前兩個單詞。模式中的 \1\2 表示第一個和第二個被捕獲括號匹配的子字符串,即 foobar,匹配了原字符串中的后兩個單詞。注意 \1\2、...、\n 是用在正則表達(dá)式的匹配環(huán)節(jié),詳情可以參閱后文的 \n 條目。而在正則表達(dá)式的替換環(huán)節(jié),則要使用像 $1$2、...、$n 這樣的語法,例如,'bar foo'.replace(/(...) (...)/, '$2 $1')$& 表示整個用于匹配的原字符串。

image.png

交換字符串位置 demo
image.png

x(?=y) 匹配'x'僅僅當(dāng)'x'后面跟著'y'.這種叫做先行斷言

例如,/Jack(?=Sprat)/會匹配到'Jack'僅當(dāng)它后面跟著'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack’僅當(dāng)它后面跟著'Sprat'或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配結(jié)果的一部分。

(?<=y)x 匹配'x'僅當(dāng)'x'前面是'y'.這種叫做后行斷言。

例如,/(?<=Jack)Sprat/會匹配到' Sprat '僅僅當(dāng)它前面是' Jack '。/(?<=Jack|Tom)Sprat/匹配‘ Sprat ’僅僅當(dāng)它前面是'Jack'或者是‘Tom’。但是‘Jack’和‘Tom’都不是匹配結(jié)果的一部分。

x(?!y) 僅僅當(dāng)'x'后面不跟著'y'時匹配'x',這被稱為正向否定查找。

例如,僅僅當(dāng)這個數(shù)字后面沒有跟小數(shù)點(diǎn)的時候,/\d+(?!.)/ 匹配一個數(shù)字。正則表達(dá)式/\d+(?!.)/.exec("3.141")匹配‘141’而不是‘3.141’

(?<!y)x 僅僅當(dāng)'x'前面不是'y'時匹配'x',這被稱為反向否定查找。

例如, 僅僅當(dāng)這個數(shù)字前面沒有負(fù)號的時候,/(?<!-)\d+/ 匹配一個數(shù)字。
/(?<!-)\d+/.exec('3') 匹配到 "3".
/(?<!-)\d+/.exec('-3') 因為這個數(shù)字前有負(fù)號,所以沒有匹配到。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • RegExp屬性和方法整理 正則表達(dá)式從上學(xué)時候就感覺跟一個噩夢似得,怎么都看不懂,工作后也有幾次想好好看看正則,...
    皮皮坤666閱讀 704評論 0 1
  • 一 : 語法規(guī)則 1.RegExp構(gòu)造函數(shù)創(chuàng)建了一個正則表達(dá)式對象,用于將文本與一個模式匹配。 2.RegExp ...
    00_5c03閱讀 271評論 0 0
  • 一個正則表達(dá)式模式是由簡單的字符所構(gòu)成的,比如/abc/, 或者是簡單的字符和特殊字符的組合,比如 /ab*c/ ...
    朱水根閱讀 641評論 0 0
  • 常用正則表達(dá)式 RegExp:就是用一個"字符串"來描述一個特征.然后去驗證另一個"字符串"是否符合這個特征涉及概...
    該昵稱注冊中閱讀 273評論 0 0
  • 正則表達(dá)式中的特殊字符 '^'號 匹配輸入的開始。如果多行標(biāo)志被設(shè)置為true,那么也匹配換行符后緊跟的位置。 例...
    angelwgh閱讀 411評論 0 0