PHP 正则表达式匹配!或 * 字符串中的任意位置

标签 php regex

我是使用 Regex 的初学者,一直在努力创建一个可以搜索单个匹配项的模式!或 * 我的字符串中的任何位置。我正在寻找的完整要求是:

  • 以字母开头
  • 至少包含 1 个数字
  • 8-16 个字符
  • 至少包含一个!或 *

我目前拥有的是:

^[A-Za-z](!*)[A-Za-z0-9]{6,14}$

很明显,我没有正确使用括号,但我仍在尝试使用它并尝试不同的方法。我特别挣扎的是寻找 !或 * 在任何位置

如果有人可以提供提示,我们将不胜感激。

最佳答案

你可以使用这个正则表达式:

^[A-Za-z](?=.*[!*])(?=.*\d).{7,15}$

RegEx Demo

解释:

  • ^:开始
  • [A-Za-z]:匹配一个字母
  • (?=.*[!*]):先行断言我们至少有一个 *!
  • (?=.*\d):先行断言我们至少有一个数字
  • .{7,15}$:匹配7到15个字符(我们在开头匹配一个字母)

关于PHP 正则表达式匹配!或 * 字符串中的任意位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73217810/

相关文章:

javascript - Ajax 函数后没有数据传递到 URL

php - 如何从 Laravel 5.2 升级到 5.4?

python - 递归正则表达式模式 - 在 python 中

用于匹配标签最后一次出现的正则表达式

PHP 扩展 imagick 3.5.0 for PHP 8 : installation on macos fails

php - HTTPS 子域将页面重定向到主域

php - http/1.1 406 在通过 json 发送数据的 android 应用程序上 Not Acceptable

javascript - 用于查找除以 172 开头的 IP 地址之外的所有 IP 地址的正则表达式

java - 在java中使用正则表达式验证文件名

regex - 提取 | 之间的最后一个单词|