自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

正則表達(dá)式引擎淺析

開發(fā) 后端
了解正則表達(dá)式引擎的是我們基本的要求,只有掌握了正則表達(dá)式引擎的原理,那么我們才能做好正則表達(dá)式的使用,本文就向你介紹相關(guān)的內(nèi)容。

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

了解正則表達(dá)式引擎的必要性:

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

正則表達(dá)式引擎的種類:

有兩種類型的引擎:文本導(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)向的。你可以作如下測試:將正則表達(dá)式<<regex|regex not>>應(yīng)用到字符串“regex not”。如果匹配的結(jié)果是regex,則引擎是正則導(dǎo)向的。如果結(jié)果是regex not,則是文本導(dǎo)向的。因為正則導(dǎo)向的引擎是“猴急”的,它會很急切的進(jìn)行表功,報告它找到的***個匹配 。

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

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

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

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

【編輯推薦】

  1. 淺析PHP正則表達(dá)式的應(yīng)用實例
  2. 正則表達(dá)式匹配實例詳解
  3. 正則表達(dá)式匹配數(shù)字實例解析
  4. 正則表達(dá)式匹配字符串實現(xiàn)詳解
  5. 正則表達(dá)式入門必學(xué)的星星點點
責(zé)任編輯:仲衡 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-07-19 10:40:16

Perl正則表達(dá)式

2009-08-07 15:16:10

C#正則表達(dá)式

2009-08-20 16:13:32

C#正則表達(dá)式匹配

2009-09-16 11:17:12

PHP正則表達(dá)式定位字

2009-09-16 15:45:56

email的正則表達(dá)式

2009-08-20 14:57:00

C#正則表達(dá)式

2009-08-20 15:10:33

C#正則表達(dá)式

2009-08-20 15:06:51

C#正則表達(dá)式

2009-08-20 15:02:41

C#正則表達(dá)式

2009-08-20 13:09:28

C#正則表達(dá)式

2009-09-16 10:43:22

PHP正則表達(dá)式函數(shù)

2009-09-16 16:01:57

PHP正則表達(dá)式正則表達(dá)式的應(yīng)用

2009-09-16 13:24:30

PHP正則表達(dá)式匹配

2009-09-16 18:03:05

Java正則表達(dá)式正則表達(dá)式實現(xiàn)

2009-08-20 14:43:03

C#正則表達(dá)式Rege

2009-08-13 15:02:52

C#正則表達(dá)式引擎貪婪

2018-09-27 15:25:08

正則表達(dá)式前端

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2009-09-16 13:53:17

PHP正則表達(dá)式匹配

2009-08-20 13:57:27

C#正則表達(dá)式
點贊
收藏

51CTO技術(shù)棧公眾號