2012-10-01 249 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