正则表达式可选的第一个特殊字符

时间:2017-03-22 10:35:19

标签: regex pattern-matching

是否可以为可选的第一个字符创建正则表达式?

我的要求是创建一个正则表达式

  • 接受字母和数字
  • 介于6到100个字符之间
  • 仅包含特殊字符冒号作为第一个字符

  • 冒号:是一个可选字符

我做了^([:][a-zA-Z0-9]{6,100}$)

如何制作第一个字符:可选?目前它是强制性的。

提前致谢!

1 个答案:

答案 0 :(得分:2)

是的,使用匹配1或0次的?量词:

^:?[a-zA-Z0-9]{6,100}$
  ^

但是,如果在char计数中应该考虑:

^(?=.{6,100}$):?[a-zA-Z0-9]+$

<强>详情:

  • ^ - 线锚的开头
  • (?=.{6,100}$) - 在整个字符串中需要6到100个字符的正向前瞻(不多也不少)
  • :? - 可选的:
  • [a-zA-Z0-9]+ - 1个或多个字母/数字
  • $ - 字符串结束。