javascript
JavaScript强化教程——正则表达式回溯
本文為?H5EDU?機構官方?HTML5培訓?教程,主要介紹:JavaScript強化教程?—— 正則表達式回溯
?
下面的例子演示了處理正則表達式分之的過程:
?
? ? /h(ello|appy)?hippo/.test("hello there,happy hippo");
這個正則表達式 "hello hippo"或"happy hippo".匹配過程開始時,首先會查找一個h,目標字符串的首字母恰好是h,于是立刻被找到。接下來,子表達式(ello|appy)提供了兩個處理選項,正則表達式選擇最左側的選項(分之選擇總是從左向右進行),檢查ello是否匹配字符串中的下一個字符,匹配成功,正則表達式進行匹配隨后的空格,由于hippo中的h無法匹配下一個字符串中的t,因此匹配無法繼續。此時,正則表達式還不能放棄,因為它還未城市完所有的可選項,隨后他會回溯到最近的決策點(匹配萬首字符h后面的位置)并嘗試匹配第二個分支。匹配并沒有成功,也沒有更多的可選項,所以正則表達式認為從字符串的第一個字符匹配是不能成功的,因此從第二個字符開始重新嘗試。他沒有找到h,于是繼續搜索知道在第14個字符串的位置匹配到“happy”中的h,然后會再次進入分支過程,這次未能匹配ello,但是在回溯并嘗試第二個分支過程后,匹配到了整個字符串“happy hippo”。
匹配成功。
點擊進入JavaScript強化教程
轉載于:https://blog.51cto.com/11731999/1841779
總結
以上是生活随笔為你收集整理的JavaScript强化教程——正则表达式回溯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给iOS 模拟器“安装”app文件
- 下一篇: dubbo 使用 filter 报错解决