Logo Wand.Tools

正则表达式生成器

智能生成和解释正则表达式,支持各种常见模式匹配

PHP 正则表达式完整教程(含常用示例)【2025最全指南】

  # PHP 正则表达式完整教程(含常用示例)【2025最全指南】
  
  正则表达式(Regular Expressions)在PHP中是处理字符串的强大工具。本教程将提供一套实用的PHP正则表达式示例,涵盖邮箱、手机号、URL、中文、HTML标签等常见匹配需求,帮助开发者快速上手正则在PHP中的应用。
  
  ## ✅ 正则表达式函数一览(preg系列)
  
  ```php
  preg_match()      // 执行正则匹配,返回第一个匹配结果
  preg_match_all()  // 执行全局正则匹配,返回所有匹配结果
  preg_replace()    // 执行正则替换
  preg_split()      // 使用正则表达式分割字符串
  preg_grep()       // 根据正则过滤数组

📌 常用正则表达式及PHP示例

1️⃣ 匹配邮箱地址

$email = "[email protected]";
if (preg_match("/^[w-.]+@([w-]+.)+[a-zA-Z]{2,7}$/", $email)) {
    echo "合法邮箱";
}

2️⃣ 匹配手机号(中国大陆)

$mobile = "13812345678";
if (preg_match("/^1[3-9]d{9}$/", $mobile)) {
    echo "合法手机号";
}

3️⃣ 匹配URL地址

$url = "https://www.example.com";
if (preg_match("/^(https?://)?([w-]+.)+[a-zA-Z]{2,6}(/S*)?$/", $url)) {
    echo "合法网址";
}

4️⃣ 匹配IP地址(IPv4)

$ip = "192.168.0.1";
if (preg_match("/^((25[0-5]|2[0-4]d|[01]?dd?).){3}(25[0-5]|2[0-4]d|[01]?dd?)$/", $ip)) {
    echo "合法IP";
}

5️⃣ 提取HTML标签中的文本内容

$html = "<p>Hello <strong>world</strong></p>";
preg_match_all("/<[^>]+>([^<]+)</[^>]+>/", $html, $matches);
print_r($matches[1]);

6️⃣ 匹配中文字符

$str = "你好world";
if (preg_match("/[\x{4e00}-\x{9fa5}]/u", $str)) {
    echo "包含中文";
}

7️⃣ 替换所有数字为空字符串

$str = "abc123def456";
$result = preg_replace("/d+/", "", $str);
echo $result; // 输出 abcdef

8️⃣ 分割字符串(以非字母为界)

$str = "hello123world,php";
$parts = preg_split("/[^a-zA-Z]+/", $str);
print_r($parts);

🧠 正则修饰符说明

修饰符 说明
i 不区分大小写
m 多行匹配模式
s 让点号匹配换行符
u 支持UTF-8字符编码
x 忽略表达式中的空格

使用方式:

preg_match("/pattern/i", $str); // 不区分大小写匹配

🔍 PHP 正则表达式使用建议

  • 使用 preg_match_all 获取所有匹配结果
  • preg_replace 做批量字符串替换处理
  • 所有中文相关正则建议加 u 修饰符
  • 正则表达式要转义特殊字符,如 .*?()+
  • 使用 var_dump() 调试正则结果