([^/]+)/(thumb)\.(jpg)$
([^/]+/)?(thumb)\.(jpg)$
我知道?
表示零次或一次。 thumb
之前是否有/
這意味着它發生一次?這些正則表達式匹配不同的字符串嗎?
([^/]+)/(thumb)\.(jpg)$
([^/]+/)?(thumb)\.(jpg)$
我知道?
表示零次或一次。 thumb
之前是否有/
這意味着它發生一次?這些正則表達式匹配不同的字符串嗎?
是的,它們匹配不同的東西。
例如,這一個:thumb.jpg
的?
使得整個子表達式可選:
([^/]+/)?(thumb)\.(jpg)$
的字符串相匹配。
另一個沒有。
([^/]+)/(thumb)\.(jpg)$
^
正如您所見,/
是靜態的,所以它必須存在。
另外,在它之前至少必須有一個不是/
的字符。這就是+
的含義。
是的,第一個表達式在字符串中需要/
,並且至少有一個字符在它之前不等於/
。
在第二個表達式中,它不是必需的。例如,thumb.jpg
將匹配第二個,但不是第一個。
最後,第一個表達式匹配的每個字符串也會匹配第二個表達式。
是的,他們可能會匹配不同的輸入。 '/'只是一個字面斜槓 – anubhava
regexr.com說第二個是壞的。錯誤:未轉義正斜槓。 –