正則表達(dá)式中小括號(hào)、中括號(hào)、大括號(hào)的作用詳細(xì)講解
在正則表達(dá)式中,小括號(hào) ()
、中括號(hào) []
和大括號(hào) {}
各自具有特定的含義:
小括號(hào)()
- 分組:
小括號(hào)用于將正則表達(dá)式的一部分組合在一起,形成一個(gè)分組。
這對(duì)于后續(xù)的引用
、條件判斷
或者捕獲匹配結(jié)果
非常有用。
小括號(hào)就是分組
- 捕獲分組:
當(dāng)正則表達(dá)式中使用小括號(hào)時(shí),它會(huì)創(chuàng)建一個(gè)捕獲分組。
(pattern)
這就是一個(gè)捕獲分組。
這意味著匹配到的、該分組的內(nèi)容,可以在后續(xù)的操作中被單獨(dú)提取
或使用
。
- 非捕獲分組
如果你不希望捕獲某個(gè)分組的內(nèi)容,
可以在小括號(hào)內(nèi)加上 ?:
來創(chuàng)建一個(gè)非捕獲分組,
例如 (?:pattern)
。
- 條件判斷:
在某些支持正則表達(dá)式的語言中,
小括號(hào)可以用于實(shí)現(xiàn)條件判斷,
如“前瞻斷言”
或“后顧斷言”
。
這一塊,我會(huì)單獨(dú)講的,這里就不講了。
中括號(hào)[]
- 字符集
中括號(hào)用于定義一個(gè)字符集,表示匹配方括號(hào)中的任意一個(gè)字符。
例如,[abc]
將匹配字符 ‘a’、‘b’ 或 ‘c’。
- 范圍
在中括號(hào)內(nèi),你可以使用連字符 -
來表示字符的范圍。
例如,[a-z]
將匹配任意小寫字母。
- 否定字符集
在中括號(hào)的最開始加上^
符號(hào),
可以表示否定字符集,
即匹配不在方括號(hào)中的任意一個(gè)字符。
例如,[^0-9]
將匹配任意非數(shù)字字符。
- 特殊字符
在中括號(hào)內(nèi),一些正則表達(dá)式中的特殊字符(如 .
、*
、+
等)
將失去其特殊含義,而只表示字面字符。
這一點(diǎn)是要注意的。
大括號(hào){}
- 限定符
大括號(hào)用于指定前面字符或分組的出現(xiàn)次數(shù)。
例如,a{3}
將匹配三個(gè)連續(xù)的 ‘a’ 字符。
- 范圍
在大括號(hào)內(nèi),你可以使用逗號(hào) ,
來指定一個(gè)范圍,
表示前面的字符或分組至少出現(xiàn)多少次,最多出現(xiàn)多少次。
例如,a{1,3}
將匹配一個(gè)到三個(gè)連續(xù)的 ‘a’ 字符。
- 貪婪與非貪婪
當(dāng)使用大括號(hào)時(shí),默認(rèn)是貪婪匹配,即盡可能多地匹配字符。
如果你想進(jìn)行非貪婪匹配(盡可能少地匹配字符),
可以在大括號(hào)后面加上 ?
,如 a{1,3}?
。
附:正則表達(dá)式:(\s*)[\s*]{\s*} 區(qū)別
正則表達(dá)式的() [] {}有不同的意思。
() 是為了提取匹配的字符串。表達(dá)式中有幾個(gè)()就有幾個(gè)相應(yīng)的匹配字符串。
(\s*)表示連續(xù)空格的字符串。
[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應(yīng)位置的字符要匹配英文字符和數(shù)字。[\s*]表示空格或者*號(hào)。
{}一般用來表示匹配的長(zhǎng)度,比如 \s{3} 表示匹配三個(gè)空格,\s[1,3]表示匹配一到三個(gè)空格。(0-9) 匹配 '0-9' 本身。 [0-9]* 匹配數(shù)字(注意后面有 *,可以為空)[0-9]+ 匹配數(shù)字(注意后面有 +,不可以為空){1-9} 寫法錯(cuò)誤。 [0-9]{0,9} 表示長(zhǎng)度為 0 到 9 的數(shù)字字符串。
過濾內(nèi)容里面有數(shù)或空格數(shù)字
preg_replace("/\d{1,}\s{0,1}/", "xxxxxxxx", $signaturecontent);
總結(jié)
小括號(hào)是分組、中括號(hào)是內(nèi)容、大括號(hào)是次數(shù)。
到此這篇關(guān)于正則表達(dá)式中小括號(hào)、中括號(hào)、大括號(hào)作用的文章就介紹到這了,更多相關(guān)正則表達(dá)式括號(hào)作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
iOS中使用正則表達(dá)式NSRegularExpression 來驗(yàn)證textfiled輸入的內(nèi)容
一個(gè)正則表達(dá)式(regexp)是由元字符和文字?jǐn)?shù)字的文本字符,或者“文字的”(abc,123,及其他)混合組合而成的文本模式。 該類型用于匹配文本字符——并附有匹配的結(jié)果,是成功還是失敗。 Regexps 主要用于規(guī)則文本匹配以及搜索和替換。2015-09-09js正則表達(dá)式驗(yàn)證URL函數(shù)代碼(方便多個(gè)正則對(duì)比)
下面是一段相對(duì)全面的用例測(cè)試,可以考慮使用,當(dāng)然,如果你的要求很簡(jiǎn)單,用網(wǎng)上傳的各種簡(jiǎn)單版,cover到自己的用例就好。2016-10-10比較正宗的驗(yàn)證郵箱的正則表達(dá)式j(luò)s代碼詳解
郵箱正則最正宗的一條正則語句是^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$ 下面我們來講解一下2012-09-09正則表達(dá)式實(shí)現(xiàn)與或非關(guān)系【推薦】
這篇文章主要介紹了正則表達(dá)式實(shí)現(xiàn)與或非關(guān)系,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07