我是使用 Regex 的初学者,一直在努力创建一个可以搜索单个匹配项的模式!或 * 我的字符串中的任何位置。我正在寻找的完整要求是:
- 以字母开头
- 至少包含 1 个数字
- 8-16 个字符
- 至少包含一个!或 *
我目前拥有的是:
^[A-Za-z](!*)[A-Za-z0-9]{6,14}$
很明显,我没有正确使用括号,但我仍在尝试使用它并尝试不同的方法。我特别挣扎的是寻找 !或 * 在任何位置。
如果有人可以提供提示,我们将不胜感激。
最佳答案
你可以使用这个正则表达式:
^[A-Za-z](?=.*[!*])(?=.*\d).{7,15}$
解释:
^
:开始[A-Za-z]
:匹配一个字母(?=.*[!*])
:先行断言我们至少有一个*
或!
(?=.*\d)
:先行断言我们至少有一个数字.{7,15}$
:匹配7到15个字符(我们在开头匹配一个字母)
关于PHP 正则表达式匹配!或 * 字符串中的任意位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73217810/