2016-03-08 111 views

回答

4

它不工作的原因是因爲超前,實際上並不消耗任何字符,所以你的匹配位置不前進享受。

^\.(?=a)$ 

匹配行的開始 - 後跟一個字面.\. - 這也匹配)(^此匹配),然後(不消耗任何字符),檢查是否下一個字符是一個文字a(?=a))。它是,所以這個lookahead匹配。然後它聲稱你的位置在字符串的末尾($)。這是不是的情況,因爲我們仍然對.之後,所以比賽失敗。

另一種可能的匹配表達式將

^\.(?=a$) 

如上述只是工作,但有關該行的末尾斷言包含在先行,所以這個時候,它匹配。

3

你的正則表達式只會匹配,再接一個「A」的期間,不包括在比賽中「A」。 另一個問題是你在基本上被忽略的角色後面使用$。

刪除$,它將按照描述工作。

獎勵:我一直在使用這個最近http://www.regexpal.com/

+0

regex101.com是另一個有用的正則表達式測試網站 –