【发布时间】:2019-09-19 09:51:12
【问题描述】:
我正在寻找可以完全做到这一点的正则表达式模式。
- 应匹配长度为 12 个字符的 alphaNumeric
- 还应检查是否出现连字符 - 在单词中出现两次
- 不允许有空格。
我尝试了以下正则表达式:
^([a-zA-Z0-9]*-[a-zA-Z0-9]*){2}$
一些样例
-1234abcd-ab
abcd12-avc-a
-abcd-abcdacb
ac12-acdsde-
正则表达式应与上述所有内容匹配。
下面的应该是错误的
-abcd-abcd--a
abcd-abcdefg
我一直在使用这个正则表达式 ^([a-zA-Z0-9]*-[a-zA-Z0-9]*){2}$ 来匹配上述模式,但问题是,它没有 12 的长度检查。我不确定如何将其添加到上述模式中。帮助将不胜感激。
【问题讨论】:
-
请发布您目前尝试过的模式。
-
我尝试了许多不起作用的正则表达式。我已经通过 regexr 并尝试了我知道的所有组合。但是没有用。 @CodeManiac
-
你能把它们贴出来,将帮助我们准确回答你所缺少的内容,同时也帮助你学习
-
^([a-zA-Z0-9]*-[a-zA-Z0-9]*){2}$ 这可用于查找带有双连字符的模式,但我'不知道如何找到总长度限制为 12 @CodeManiac
-
你可以用任何语言做的最简单的事情是检查字符串的长度,
str.length <= 12,如果你想使用正则表达式,你可以使用积极的前瞻(我不建议只用于长度限制),即(?=^.{12}$)
标签: regex