可选字符,数字,符号正则表达式

时间:2014-06-10 13:18:14

标签: regex

我想要实现的正则表达式任务非常简单。字符串可以包含以下之一:

  • 字母加数字
  • 字母加数字加符号
  • 字母加符号

我已经能够获得前两分,但我很难获得最后一分。

/^(?=.*[a-z])(?=.*[0-9]).{7,}$/

应该匹配的字符串如下:

  • test123
  • test123 @#] [
  • test @#; [ - =

请注意,对于我说alphabet plus symbols的最后一个场景。我喜欢它匹配任何符号。我做了另外尝试:

/(.*).{7}/

这不起作用。原因是因为这意味着个人可以只输入字母。因此,为了使正则表达式满足需要,如上所述,可以是以下之一。

2 个答案:

答案 0 :(得分:3)

根据我的解释,这可能有效:

/^[a-zA-Z]+[^a-zA-Z]+$/

答案 1 :(得分:2)

我觉得“加”你的意思是“然后”,所以这应该这样做:

^(?=.{7,})[a-zA-Z]+(?!$)[0-9]*[^a-zA-Z0-9]*$

此正则表达式要求如果存在数字和符号,则该数字位于符号之前。

此处“符号”被定义为任何字符字母或数字,您可能希望改为列出“符号”字符,例如[@%#()*]

前面的负面看法用于要求至少一些字符必须跟随字母。