【发布时间】:2017-07-16 22:13:00
【问题描述】:
我正在做一个小项目,我需要评估一个只有四个字符的字符串[我可以写一点 RE,但这个让我明白了。]。
我需要编写一个正则表达式,它必须匹配1 upper case word、1 lower case word、one digit 和一个随机字符,如[a-zA-Z0-9]。字符串中的顺序无关紧要。
以下是一些应该通过或失败的案例字符串。
Valid words: Abn1, GGh3, 89jK….
Invalid words: abcd, 112a, abDb, 2Ab, 4, AA, ….
感谢任何帮助或提醒。
【问题讨论】:
-
这有点不清楚,是否意味着字符串至少应包含 4 个字符?单词还是字符串?试试
\b(?=[a-z\d]*[A-Z])(?=[a-zA-Z]*\d)(?=[A-Z\d]*[a-z])[a-zA-Z0-9]{4,}。或者,如果整个字符串应该匹配,^(?=.*[A-Z])(?=.*\d)(?=.*[a-z])[a-zA-Z0-9]{4,}$. -
@WiktorStribiżew,字符串只能包含 4 个字符,不多也不少
-
@downvoter,你对这个有好的想法吗?
标签: php regex regular-language