限制字符正则表达式的数量

时间:2014-08-30 15:23:51

标签: regex

试图找出可以执行以下操作的正则表达式

  • 可以包含字母数字字符
  • 可以包含( - )和/或(/)字符
  • 不得以( - )或(/)
  • 开头
  • 不得以( - )或(/)
  • 结尾
  • 字符( - )和/或(/)不能相邻。
  • 字符串的总长度应在3到10个字符之间

我得到的是以下内容:

编辑:

^((([a-zA-Z0-9])*((\/)|(-))?)*[a-zA-Z0-9]$){1,10}

我认为它能够执行除最后一次打开之外的所有操作,即总长度应在3到10个字符之间。

编辑:

示例:

<匹配>英文/ 14-15,ENG / 14/15,ENG / 2014 不匹配:ENG // 14-15(相邻符号),ENG / -14-15(相邻符号),/ ENG / 14-15 /(不应以/或 - 开头或结尾),ENG / 2014-15( 11个字符)

任何人都可以帮我解答和/或解释吗?

此致

1 个答案:

答案 0 :(得分:3)

您可以使用这个基于前瞻性的正则表达式:

^[a-zA-Z0-9](?!.*?[\/-]{2})[a-zA-Z0-9\/-]{1,8}[a-zA-Z0-9]$

此处(?!.*?[\/-]{2})为负面预测,可防止多个/-在一起。

RegEx Demo