本文爲 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」。
匹配成功。html
點擊進入JavaScript強化教程
正則表達式