我正在尝试编写一个正则表达式(在ASP.NET RegularExpressionValidator中使用),以便:
如果要验证的字符串包含字母A后跟字母B,则验证将失败。
如果要验证的字符串包含字母F,后跟W、X、Y、Z或任何数字,则验证应失败。
我想出了这个
(AB)|(F(W|X|Y|Z|[0-9]))
但据我所知,如果输入确实与该表达式匹配,则验证将成功。
如果输入与该表达式不匹配,我需要做什么才能使验证失败?
非常感谢,
大卫
发布于 2012-09-21 16:43:54
这就是negative lookaheads的用途
(?!.*AB)(?!.*F[WXYZ\d])
在这些字符串上失败。它还不匹配任何文本(如果您要做的就是检查是否存在匹配,那么这就足够了),因此匹配结果始终是一个空字符串
发布于 2012-09-21 16:31:17
这将会起作用:
A[^B]|F[^WXYZ0-9]|[^AF].
请注意,这也将匹配"A$“或"@@”。如果您只想匹配“一个字母后跟一个字母或数字”,则使用以下命令:
A[AC-Z0-9]|F[A-V]|[B-EG-Z][A-Z0-9]
正则表达式更擅长正向匹配。
请注意,对于正则表达式验证器,整个字符串必须匹配(如果只有一个子字符串匹配,验证器将报告验证失败)
https://stackoverflow.com/questions/12526849
复制相似问题