具有特殊字符的正则表达式字母数字

时间:2017-06-07 13:13:31

标签: regex

我需要使用正则表达式验证输入字符串,该字符串应满足以下要求:

  • 如果所有号码 - >错误
  • 如果所有特殊字符 - >错误
  • 如果只有数字+特殊字符 - >错误
  • 保留所有内容应标记为非错误。

我无法通过所有测试用例。

这是我的正则表达式:

\d*([a-zA-Z,\/().]*[a-zA-Z][\d,\/().]*)[a-zA-Z\d\s]*$

对于特殊字符,我会获得一个特定的列表,\/().让他们进来。任何人都可以帮我理解这个吗?

2 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式:

^(?:[\d,\/().]*[a-zA-Z][a-zA-Z\d,\/().]*)?$

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • (?:[\d,\/().]*[a-zA-Z][a-zA-Z\d,\/().]*)? - 一个可选序列(它允许字符串为空):
    • [\d,\/().]* - 0+位数和特殊
    • [a-zA-Z] - 一个alpha
    • [a-zA-Z\d,\/().]* - 0+ alpha,数字和特殊
  • $ - 字符串结尾

答案 1 :(得分:0)

严格按照您的要求,以下操作:

[^\d,\\\/().]
如果有任何“触发”字符(非数字,非特殊)

,匹配

如果要匹配整个字符串,请使用

^.*[^\d,\\\/().].*$