特定条件的正则表达式



我在与RegEx进行检查时遇到问题,试图匹配以下内容:

  • 字母:大写或小写
  • 数字:0-9
  • 一些特殊字符:@#$&((*^'_-
  • 字符之间的单个空白
  • 不为空或仅为空白
  • 没有前导或尾随空格

几个例子:

  • 确定:"abc">
  • 好的:"ABC">
  • OK:"123">
  • OK:"@#$">
  • 确定:"acbBC123@#$">
  • 好:"abc abc 123@#$">
  • 不正常:">
  • 不正常:">
  • 不正常:"abcABC%%+123@#$">
  • 不好:"abc abc 123@#$">

为了适应所有这些条件,什么是正确的RegEx?

我假设封闭的"引号"标记实际上并不包括在字符串中。这是你想要的吗?

^[A-Za-z0-9@#$&)(*^'!_-]+(?: [A-Za-z0-9@#$&)(*^'!_-]+)*$

基本上,它是说"开头允许的任何字符,后面是一个或多个可选的字符块,前面有一个空格。"这允许在"单词"之间有一个空白,并且必须以非空白字符开头和结尾。

在此处测试

最新更新