2012-10-01 255 views

回答

3

第一個表達式實際上不會「覆蓋」字符串的任何部分。請參閱^(?!...)子表達式在測試字符串中的特定位置(錨點)處匹配(實際上它們都嘗試在相同的位置進行匹配 - 正好在開頭 - 並且立即失敗)。

而這 - ^(?!Bar$).* - 實際上'涵蓋'所有的字符串。我想這是不同的。

+0

謝謝,我已經通知測試人員關於測試儀可能出現的問題。 – Stijn

+1

@Stijn - Raina77ow有一個很好的答案,並且我懷疑正則表達式約束在後臺有代碼來檢查匹配長度是否等於字符串長度,這可以解釋這種行爲。我也在這裏回答你的問題... https://getsatisfaction.com/bucketsoft/topics/regex_route_constraint_with_negative_lookahead_in_mvc_3 –

+0

@SteveWortham感謝您的意見 – Stijn