【发布时间】:2017-10-24 16:16:37
【问题描述】:
我正在尝试制作符合以下条件的正则表达式:
- 4 个字符。
- 前 3 个字符必须是字母数字字符,至少包括一个字母和一个数字。
- 最后一个字符必须是字母。
所以我希望结果是:
- case1: abcd -> 不匹配
- case2: 234d -> 不匹配
- case3: a23c -> 匹配
- case4: 3abc -> 匹配
- case5: xy23 -> 不匹配
我测试了以下匹配条件 2 的正则表达式,但仍然找不到匹配条件 1&3 的解决方案。
^(?!.*[^a-zA-Z0-9])(?=.*\d)(?=.*[a-zA-Z]).{3}$
我试过这个,但在 case2 上失败了。
^(?!.*[^a-zA-Z0-9])(?=.*\d)(?=.*[a-zA-Z]).{3}[a-zA-Z]$
如何结合这些条件?谢谢!
【问题讨论】:
-
嗨明华,你确定要使用哪种模式了吗?下面长的还是上面短的?
-
感谢 Wiktor Stribiżew,我最终采用了您的解决方案,但您的两个解决方案都适用于我的情况。谢谢你们。
-
请使用@+用户名通知我们您的 cmets。我在下面发布了答案,请考虑接受(单击左侧的灰色勾号),因为您选择了我的解决方案。
标签: regex