我們已經提到了怎么重復單個字符(直接在字符后面加上限定符就行了);但如果想要重復多個字符又該怎么辦?
你可以用小括號來指定**子表達式**(也叫做**分組**),然后你就可以指定這個子表達式的重復次數了,你也可以對子表達式進行其它一些操作(后面會有介紹)。
>[info](\\d{1,3}\\.){3}\\d{1,3}
是一個簡單的IP地址匹配表達式。要理解這個表達式,請按下列順序分析它:
\\d{1,3}匹配1到3位的數字,(\\d{1,3}\.){3}匹配三位數字加上一個英文句號(這個整體也就是這個**分組**)重復3次,最后再加上一個一到三位的數字(\\d{1,3})。
不幸的是,它也將匹配*256.300.888.999*這種不可能存在的IP地址。
如果能使用算術比較的話,或許能簡單地解決這個問題,但是正則表達式中并不提供關于數學的任何功能,所以只能使用冗長的分組,
選擇字符類來描述一個正確的IP地址:
((2\[0-4\]\\d|25\[0-5\]|\[01\]?\\d\\d?)\\.){3}(2\[0-4\]\\d|25\[0-5\]|\[01\]?\\d\\d?)。