柚子快報激活碼778899分享:正則表達式
柚子快報激活碼778899分享:正則表達式
正則表達式是一種用于匹配和操作文本的強大工具,它是由一系列字符和特殊字符組成的模式,用于描述要匹配的文本模式。
正則表達式可以在文本中查找、替換、提取和驗證特定的模式。
例如:
runoo+b,可以匹配?runoob、runooob、runoooooob?等,+?號代表前面的字符必須至少出現(xiàn)一次(1次或多次)嘗試一下 ?。 runoo*b,可以匹配?runob、runoob、runoooooob?等,*?號代表前面的字符可以不出現(xiàn),也可以出現(xiàn)一次或者多次(0次、或1次、或多次)嘗試一下 ?。 colou?r?可以匹配?color?或者?colour,??問號代表前面的字符最多只可以出現(xiàn)一次(0次或1次)嘗試一下 ?。
構(gòu)造正則表達式的方法和創(chuàng)建數(shù)學(xué)表達式的方法一樣。也就是用多種元字符與運算符可以將小的表達式結(jié)合在一起來創(chuàng)建更大的表達式。正則表達式的組件可以是單個的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。
正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。
特殊字符
所謂特殊字符,就是一些有特殊含義的字符,如上面說的?runoo*b?中的?*,簡單的說就是表示任何字符串的意思。如果要查找字符串中的?*?符號,則需要對?*?進行轉(zhuǎn)義,即在其前加一個?\,runo\*ob?匹配字符串?runo*ob。
許多元字符要求在試圖匹配它們時特別對待。若要匹配這些特殊字符,必須首先使字符"轉(zhuǎn)義",即,將反斜杠字符\?放在它們前面。下表列出了正則表達式中的特殊字符:
特別字符描述$匹配輸入字符串的結(jié)尾位置。如果設(shè)置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,請使用 \$。( )標(biāo)記一個子表達式的開始和結(jié)束位置。子表達式可以獲取供以后使用。要匹配這些字符,請使用 \( 和 \)。*匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \*。+匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+。.匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用 \. 。[標(biāo)記一個中括號表達式的開始。要匹配 [,請使用 \[。?匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \?。\將下一個字符標(biāo)記為或特殊字符、或原義字符、或向后引用、或八進制轉(zhuǎn)義符。例如, 'n' 匹配字符 'n'。'\n' 匹配換行符。序列 '\\' 匹配 "\",而 '\(' 則匹配 "("。^匹配輸入字符串的開始位置,除非在方括號表達式中使用,當(dāng)該符號在方括號表達式中使用時,表示不接受該方括號表達式中的字符集合。要匹配 ^ 字符本身,請使用 \^。{標(biāo)記限定符表達式的開始。要匹配 {,請使用 \{。|指明兩項之間的一個選擇。要匹配 |,請使用 \|。
限定符
限定符用來指定正則表達式的一個給定組件必須要出現(xiàn)多少次才能滿足匹配。有?*?或?+?或???或?{n}?或?{n,}?或?{n,m}?共6種。
正則表達式的限定符有:
字符描述實例*匹配前面的子表達式零次或多次。例如,zo*?能匹配?"z"?以及?"zoo"。*?等價于?{0,}。嘗試一下 ?+匹配前面的子表達式一次或多次。例如,zo+?能匹配?"zo"?以及 "zoo",但不能匹配?"z"。+?等價于?{1,}。嘗試一下 ?? 匹配前面的子表達式零次或一次。例如,do(es)??可以匹配?"do"?、?"does"、?"doxy"?中的?"do"?和?"does"。??等價于?{0,1}。 嘗試一下 ?{n}n 是一個非負整數(shù)。匹配確定的?n?次。例如,o{2}?不能匹配?"Bob"?中的?o,但是能匹配?"food"?中的兩個?o。嘗試一下 ?{n,}n 是一個非負整數(shù)。至少匹配n 次。例如,o{2,}?不能匹配?"Bob"?中的?o,但能匹配?"foooood"?中的所有?o。o{1,}?等價于?o+。o{0,}?則等價于?o*。嘗試一下 ?{n,m}m 和 n 均為非負整數(shù),其中 n <= m。最少匹配 n 次且最多匹配 m 次。例如,o{1,3}?將匹配?"fooooood"?中的前三個?o。o{0,1}?等價于?o?。請注意在逗號和兩個數(shù)之間不能有空格。嘗試一下 ?
貪婪和非貪婪匹配
*?和?+?限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的后面加上一個 ? 就可以實現(xiàn)非貪婪或最小匹配。
參考: 正則表達式 – 語法 | 菜鳥教程
柚子快報激活碼778899分享:正則表達式
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。