首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RegularExpressionValidator -验证字符串是否与表达式不匹配

RegularExpressionValidator -验证字符串是否与表达式不匹配
EN

Stack Overflow用户
提问于 2012-09-21 16:27:01
回答 4查看 2.2K关注 0票数 3

我正在尝试编写一个正则表达式(在ASP.NET RegularExpressionValidator中使用),以便:

如果要验证的字符串包含字母A后跟字母B,则验证将失败。

如果要验证的字符串包含字母F,后跟W、X、Y、Z或任何数字,则验证应失败。

我想出了这个

代码语言:javascript
运行
复制
(AB)|(F(W|X|Y|Z|[0-9]))

但据我所知,如果输入确实与该表达式匹配,则验证将成功。

如果输入与该表达式不匹配,我需要做什么才能使验证失败?

非常感谢,

大卫

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-21 16:43:54

这就是negative lookaheads的用途

代码语言:javascript
运行
复制
(?!.*AB)(?!.*F[WXYZ\d])

在这些字符串上失败。它还不匹配任何文本(如果您要做的就是检查是否存在匹配,那么这就足够了),因此匹配结果始终是一个空字符串

票数 5
EN

Stack Overflow用户

发布于 2012-09-21 16:31:17

这将会起作用:

代码语言:javascript
运行
复制
A[^B]|F[^WXYZ0-9]|[^AF].

  • A后跟除B以外的任何字符,或
  • A后跟任何例外的W、X、Y、Z或数字,或
  • A或F后跟任何单个字符

请注意,这也将匹配"A$“或"@@”。如果您只想匹配“一个字母后跟一个字母或数字”,则使用以下命令:

代码语言:javascript
运行
复制
A[AC-Z0-9]|F[A-V]|[B-EG-Z][A-Z0-9]

正则表达式更擅长正向匹配。

请注意,对于正则表达式验证器,整个字符串必须匹配(如果只有一个子字符串匹配,验证器将报告验证失败)

票数 3
EN

Stack Overflow用户

发布于 2012-09-21 16:32:34

您可以使用编程语言提供的逻辑not运算符对匹配操作返回的结果求反,不需要修改正则表达式。

编辑:如果上面没有选项,请查看这些问题123

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12526849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档