3. 已命名捕獲組(Named Groups)
當在一個表達式內多次用到回調引用時,很容易就把事情搞混淆,要弄清那些數字(\1 … \9)都代表哪一個子內容是件很麻煩的事;卣{引用的一個替代方法是使用帶名字的捕獲組(下文簡稱“有名組”)。有名組使用(?Ppattern)來設定,name代表組名,pattern是配合該有名組的正則結構。請看下面的例子:
/(?P<quote>"|').*?(?P=quote)/
上式中,quote就是組名,"|'是改組匹配內容的正則。后面的(?P=quote)是在調用組名為quote的有名組。這個式子的效果和上面的回調引用實例一樣,只不過是用了有名組來實現。是不是更加易讀易懂了? 有名組也能用于處理已匹配內容之數組的內部數據。賦予特定正則的組名也能作為所匹配到的內容在數組內部的索引詞。
preg_match( '/(?P<quote>"|\')/', "'String'", $matches ); # 下面的語句輸出“'”(不包括雙引號) echo $matches[1]; # 使用組名調用,也會輸出“'” echo $matches['quote'];
所以,有名組并不只是讓寫代碼更容易,它也能用于組織代碼。
出處:笨活兒
責任編輯:bluehearts
上一頁 回返引用(Back referencing) 下一頁 字詞邊界(Word Boundaries)
◎進入論壇網頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|