日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
正則表達式引擎淺析

正則表達式引擎的內(nèi)部工作機制是什么呢?我們有的時候會碰到當(dāng)使用正則表達式的時候很多的結(jié)果并不是我們想要的,那么其原因是什么呢?那么這里就會給你一個答案:

了解正則表達式引擎的必要性:

知道正則表達式引擎是如何工作的有助于你很快理解為何某個正則表達式不像你期望的那樣工作。

正則表達式引擎的種類:

有兩種類型的引擎:文本導(dǎo)向(text-directed)的引擎和正則導(dǎo)向(regex-directed)的引擎。Jeffrey Friedl把他們稱作DFA和NFA引擎。本文談到的是正則導(dǎo)向的引擎。這是因為一些非常有用的特性,如“惰性”量詞(lazy quantifiers)和反向引用(backreferences),只能在正則導(dǎo)向的引擎中實現(xiàn)。所以毫不意外這種引擎是目前***的引擎。

你可以輕易分辨出所使用的引擎是文本導(dǎo)向還是正則導(dǎo)向。如果反向引用或“惰性”量詞被實現(xiàn),則可以肯定你使用的引擎是正則導(dǎo)向的。你可以作如下測試:將正則表達式<>應(yīng)用到字符串“regex not”。如果匹配的結(jié)果是regex,則引擎是正則導(dǎo)向的。如果結(jié)果是regex not,則是文本導(dǎo)向的。因為正則導(dǎo)向的引擎是“猴急”的,它會很急切的進行表功,報告它找到的***個匹配 。

正則表達式引擎的小小總結(jié):

正則導(dǎo)向的引擎總是返回最左邊的匹配,這是需要你理解的很重要的一點:即使以后有可能發(fā)現(xiàn)一個“更好”的匹配,正則導(dǎo)向的引擎也總是返回最左邊的匹配。

當(dāng)把<>應(yīng)用到“He captured a catfish for his cat”,引擎先比較<>和“H”,結(jié)果失敗了。于是引擎再比較<>和“e”,也失敗了。直到第四個字符,<>匹配了“c”。<>匹配了第五個字符。到第六個字符<>沒能匹配“p”,也失敗了。引擎再繼續(xù)從第五個字符重新檢查匹配性。直到第十五個字符開始,<>匹配上了“catfish”中的“cat”,正則表達式引擎急切的返回***個匹配的結(jié)果,而不會再繼續(xù)查找是否有其他更好的匹配。

正則表達式引擎的相關(guān)內(nèi)容就向你介紹到這里,希望你對正則表達式引擎有所了解。

【編輯推薦】

  1. 淺析PHP正則表達式的應(yīng)用實例
  2. 正則表達式匹配實例詳解
  3. 正則表達式匹配數(shù)字實例解析
  4. 正則表達式匹配字符串實現(xiàn)詳解
  5. 正則表達式入門必學(xué)的星星點點

新聞標(biāo)題:正則表達式引擎淺析
網(wǎng)頁URL:
http://www.5511xx.com/article/coegdhi.html