正則表達(dá)式,是一種小型高度專業(yè)化的語(yǔ)言,描述了一種字符串匹配的模式。 在任何常見(jiàn)的語(yǔ)言中,只要這種語(yǔ)言能處理字符串,就應(yīng)該包含正則表達(dá)式。 所謂的正則表達(dá)式,就是通過(guò)一段規(guī)則表達(dá)一段文本。 下列為一個(gè)完整的元字符列表: . ^ $ * + ? { } [ ] \ | ( ) 上列字符不會(huì)和它們本身相匹配,如果想匹配自身,就需要在元字符前加/。 元字符簡(jiǎn)略介紹 * :匹配前面的子表達(dá)式零次或多次。 + :匹配前面的子表達(dá)式一次或多次。 ? :匹配前面的子表達(dá)式零次或一次。 : 匹配確定的 n 次。 : 至少匹配n 次。 : 最少匹配 n 次且最多匹配 m 次。 *、+限定符都是貪婪的,因?yàn)樗鼈儠?huì)盡可能多的匹配文字,只有在它們的后面加上一個(gè)?就可以實(shí)現(xiàn)非貪婪或最小匹配。 ^ : 匹配輸入字符串的開(kāi)始位置。 $ : 匹配輸入字符串的結(jié)束位置。 不能將限定符與定位符一起使用。 [xyz] : 字符集合。匹配所包含的任意一個(gè)字符。 [^xyz] : 負(fù)值字符集合。匹配未包含的任意字符。 [a-z] : 字符范圍。匹配指定范圍內(nèi)的任意字符。 [^a-z] : 負(fù)值字符范圍。匹配任何不在指定范圍內(nèi)的任意字符。 x|y : 匹配 x 或 y。 (pattern) : 匹配 pattern 并獲取這一匹配。 (?:pattern) : 匹配 pattern 但不獲取匹配結(jié)果。 (?=pattern) : 正向肯定預(yù)查。 (?!pattern) : 正向否定預(yù)查。 圓括號(hào)會(huì)使匹配會(huì)被緩存,非捕獲元(?: ?= ?!)可以消除這個(gè)效果。 \d : 匹配十進(jìn)制數(shù)。 \s : 匹配空白字符。 \w : 匹配字母數(shù)字。 \b : 匹配一個(gè)單詞邊界。 當(dāng)以上四個(gè)字母大寫時(shí),代表著取反。 簡(jiǎn)單實(shí)例 /[a-z]/ : a至z共26個(gè)字母再。 /^\s*$/ : 匹配空行。 /\d-\d/ : 驗(yàn)證由三位數(shù)字、一個(gè)連字符再加四位數(shù)字。 https?://.*? : 匹配http或https開(kāi)頭的網(wǎng)址。 我們可以通過(guò)正則表達(dá)式從長(zhǎng)文本中提取出匹配模式的文本,或者判斷文本是否合取某種規(guī)則。 它在表單驗(yàn)證(如驗(yàn)證手機(jī)號(hào),郵箱等),爬蟲,數(shù)據(jù)清洗等方面都有比較重要的作用,所以學(xué)習(xí)使用還是非常有必要的。 |
|