javascript
JavaScript强化教程——正则表达式回溯
本文為?H5EDU?機(jī)構(gòu)官方?HTML5培訓(xùn)?教程,主要介紹:JavaScript強(qiáng)化教程?—— 正則表達(dá)式回溯
?
下面的例子演示了處理正則表達(dá)式分之的過(guò)程:
?
? ? /h(ello|appy)?hippo/.test("hello there,happy hippo");
這個(gè)正則表達(dá)式 "hello hippo"或"happy hippo".匹配過(guò)程開(kāi)始時(shí),首先會(huì)查找一個(gè)h,目標(biāo)字符串的首字母恰好是h,于是立刻被找到。接下來(lái),子表達(dá)式(ello|appy)提供了兩個(gè)處理選項(xiàng),正則表達(dá)式選擇最左側(cè)的選項(xiàng)(分之選擇總是從左向右進(jìn)行),檢查ello是否匹配字符串中的下一個(gè)字符,匹配成功,正則表達(dá)式進(jìn)行匹配隨后的空格,由于hippo中的h無(wú)法匹配下一個(gè)字符串中的t,因此匹配無(wú)法繼續(xù)。此時(shí),正則表達(dá)式還不能放棄,因?yàn)樗€未城市完所有的可選項(xiàng),隨后他會(huì)回溯到最近的決策點(diǎn)(匹配萬(wàn)首字符h后面的位置)并嘗試匹配第二個(gè)分支。匹配并沒(méi)有成功,也沒(méi)有更多的可選項(xiàng),所以正則表達(dá)式認(rèn)為從字符串的第一個(gè)字符匹配是不能成功的,因此從第二個(gè)字符開(kāi)始重新嘗試。他沒(méi)有找到h,于是繼續(xù)搜索知道在第14個(gè)字符串的位置匹配到“happy”中的h,然后會(huì)再次進(jìn)入分支過(guò)程,這次未能匹配ello,但是在回溯并嘗試第二個(gè)分支過(guò)程后,匹配到了整個(gè)字符串“happy hippo”。
匹配成功。
點(diǎn)擊進(jìn)入JavaScript強(qiáng)化教程
轉(zhuǎn)載于:https://blog.51cto.com/11731999/1841779
總結(jié)
以上是生活随笔為你收集整理的JavaScript强化教程——正则表达式回溯的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 给iOS 模拟器“安装”app文件
- 下一篇: JavaScript之面向对象学习四原型