中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > 正則表達式高級技巧及實例詳解
PHP企業(yè)級應(yīng)用之WebService續(xù)篇 回到列表 聚焦UML實踐第一步
 正則表達式高級技巧及實例詳解

作者:笨活兒 時間: 2009-06-02 文檔類型:翻譯 來自:笨活兒

第 1 頁 正則表達式高級技巧及實例詳解 [1]
第 2 頁 正則表達式高級技巧及實例詳解 [2]
第 3 頁 正則表達式高級技巧及實例詳解 [3]
第 4 頁 正則表達式高級技巧及實例詳解 [4]
第 5 頁 正則表達式高級技巧及實例詳解 [5]

3. 已命名捕獲組(Named Groups)

當(dāng)在一個表達式內(nèi)多次用到回調(diào)引用時,很容易就把事情搞混淆,要弄清那些數(shù)字(1 … 9)都代表哪一個子內(nèi)容是件很麻煩的事。回調(diào)引用的一個替代方法是使用帶名字的捕獲組(下文簡稱“有名組”)。有名組使用(?P<name>pattern)來設(shè)定,name代表組名,pattern是配合該有名組的正則結(jié)構(gòu)。請看下面的例子:

/(?P<quote>"|').*?(?P=quote)/

上式中,quote就是組名,"|'是改組匹配內(nèi)容的正則。后面的(?P=quote)是在調(diào)用組名為quote的有名組。這個式子的效果和上面的回調(diào)引用實例一樣,只不過是用了有名組來實現(xiàn)。是不是更加易讀易懂了?

有名組也能用于處理已匹配內(nèi)容之?dāng)?shù)組的內(nèi)部數(shù)據(jù)。賦予特定正則的組名也能作為所匹配到的內(nèi)容在數(shù)組內(nèi)部的索引詞。

preg_match( '/(?P<quote>"|\')/', "'String'", $matches );
# 下面的語句輸出“'”(不包括雙引號)
echo $matches[1];
# 使用組名調(diào)用,也會輸出“'”
echo $matches['quote'];

所以,有名組并不只是讓寫代碼更容易,它也能用于組織代碼。

4. 字詞邊界(Word Boundaries)

Word Boundaries

字詞邊界是字串里的字詞字符(包括字母、數(shù)字和下劃線,自然也包括漢字)和非字詞字符之間的位置。其特殊之處就在于,它并不匹配某個實在的字符。它的長度是\b 匹配所有字詞邊界。

不幸的是,字詞邊界一般都被忽視掉了,大部分人都沒有在意他的現(xiàn)實意義。 例如,如果你想要匹配單詞“import”:

/import/

注意了!正則表達式有時候很調(diào)皮的。下面的字串也能和上面的式子匹配成功:

important

你或許覺得,只要在import前后加上空格,不就可以匹配這個獨立的單詞了:

/ import /

那如果遇上這種情況呢:

The trader voted for the import

當(dāng) import 這個詞在字串開頭或者結(jié)尾時,修改后的表達式仍然不能用。因此,考慮各種情況是必須的:

/(^import | import | import$)/i

別慌,還沒完呢。如果遇到標(biāo)點符號了呢?就為了滿足這一個單詞的匹配,你的正則可能就需要這樣寫:

/(^import(:|;|,)? | import(:|;|,)? | import(\.|\?|\!)?$)/i

對于只匹配一個單詞來說,這樣做實在是有點大動干戈了。正因如此,字詞邊界才顯得意義重大。要適應(yīng)上述要求,以及很多其他情況變種,有了字符邊界,我們所需寫的代碼只是:

/\bimport\b/

上面所有情況都得到了解決。 \b 的靈活性就在于,它是一個沒有長度的匹配。它只匹配兩個實際字符之間想象出的位置。它檢查兩個相鄰字符是否是一個為單字,另一個為非單字。情況符合,就返回匹配。如果遇到了單詞的開頭或結(jié)尾, \b 會把它當(dāng)成是非單詞字符對待。由于import里面的 i 仍然被看成是單詞字符,import 就被匹配出來了。

注意,與\b相對,我們還有\B,此操作符匹配兩個單字或者兩個非單字之間的位置。因此,如果你想匹配在某個單詞內(nèi)部的‘hi’,可以使用:

\Bhi\B

“this”、“hight”,都會返回匹配,而“hi there”則不會返回匹配。

出處:笨活兒
責(zé)任編輯:bluehearts

上一頁 正則表達式高級技巧及實例詳解 [2] 下一頁 正則表達式高級技巧及實例詳解 [4]

◎進入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章
Ajax標(biāo)簽導(dǎo)航實例詳解
UBB 轉(zhuǎn)換函數(shù)演示
作者文章
高品質(zhì)的網(wǎng)頁設(shè)計:實例與技巧
五個為設(shè)計添加光影效果的簡單技巧
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻,送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:3/51個記錄/頁 轉(zhuǎn)到 頁 共5個記錄

藍色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2