我不知道我是否可以稱這貪婪,但這是一個簡單的正則表達式模式與改變。Regex篡改行爲貪婪
正則表達式:
val|get|valueget|eva
文本輸入:
aevalueget
在我的理解,應該符合 「VAL」 因爲VAL是在模式中最左邊的表達,它的優先級。由於輸入中有一個匹配的子字符串,它應該匹配「val」並且應該停止進一步搜索。 但在上述案例中的匹配是「eva」,這是模式中最右邊的表達。 實際上,模式中的所有表達式在輸入中都有匹配的子字符串,但似乎它在模式中選擇了最正確的表達式。 我想弄明白這一點。如果有人能夠解釋這種行爲,這將是非常好的。
正則表達式處理器在找到'val'之前找到'eva'。 – 2014-09-05 19:42:51
你好像它確實如此,但爲什麼.. 因爲有或OR不應該它嘗試匹配整個第一個表達式,然後去下一個表達式? – Rasm 2014-09-05 19:52:53