正則表達(dá)式之分組

2018-08-04 14:36 更新

在上述章節(jié)中我們已經(jīng)知道直接在字符后面加上限定符就可以重復(fù)單個字符,那么多個字符的重復(fù)又該如何實現(xiàn)呢?你可以使用小括號來指定子表達(dá)式(也稱為分組),然后對于這個子表達(dá)式的重復(fù)次數(shù)你就可以自行規(guī)定了,子表達(dá)式也可以進(jìn)行一些其他的操作,這個在后面會進(jìn)行介紹。

(\d{1,3}\.){3}\d{1,3}是一個簡單的IP地址匹配表達(dá)式。要理解這個表達(dá)式,請按下列順序分析它:\d{1,3}匹配1到3位的數(shù)字,(\d{1,3}\.){3}匹配三位數(shù)字加上一個英文句號(這個整體也就是這個分組)重復(fù)3次,最后再加上一個一到三位的數(shù)字(\d{1,3})。

不幸的是,它也將匹配256.300.888.999這種不可能存在的IP地址。如果能使用算術(shù)比較的話,或許能簡單地解決這個問題,但是正則表達(dá)式中并不提供關(guān)于數(shù)學(xué)的任何功能,所以只能使用冗長的分組,選擇,字符類來描述一個正確的IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

理解這個表達(dá)式的關(guān)鍵是理解2[0-4]\d|25[0-5]|[01]?\d\d?,這里我就不細(xì)說了,你自己應(yīng)該能分析得出來它的意義。

注解:

  1. IP地址中每個數(shù)字都不能大于255. 經(jīng)常有人問我,01.02.03.04 這樣前面帶有0的數(shù)字, 是不是正確的IP地址呢? 答案是: 是的, IP 地址里的數(shù)字可以包含有前導(dǎo) 0 (leading zeroes).


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號