PHP常用的正则表达式
封面图
•
2025-10-20
•
PHP
230
0
0
0
在 PHP 中,正则表达式常用于字符串的匹配、替换、分割等操作。PHP 提供了 `preg_*` 系列函数(如 `preg_match`, `preg_replace`, `preg_split` 等)来处理正则表达式。 以下是一些 **PHP 常用的正则表达式** 示例及其用途: --- ## ✅ 1. 匹配邮箱地址(Email) ```php $email = "test@example.com"; if (preg_match("/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $email)) { echo "有效邮箱"; } else { echo "无效邮箱"; } ``` --- ## ✅ 2. 匹配手机号(中国大陆) ```php $phone = "13812345678"; if (preg_match("/^1[3-9]\d{9}$/", $phone)) { echo "有效手机号"; } else { echo "无效手机号"; } ``` --- ## ✅ 3. 匹配 URL ```php $url = "https://www.example.com"; if (preg_match("/^(https?:\/\/)?([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})(\/.*)?$/", $url)) { echo "有效 URL"; } else { echo "无效 URL"; } ``` --- ## ✅ 4. 匹配 IP 地址 ```php $ip = "192.168.1.1"; if (preg_match("/^(\d{1,3}\.){3}\d{1,3}$/", $ip)) { echo "有效 IP"; } else { echo "无效 IP"; } ``` --- ## ✅ 5. 匹配中文字符 ```php $text = "你好,世界!"; if (preg_match("/[\x{4e00}-\x{9fa5}]/u", $text)) { echo "包含中文"; } else { echo "不包含中文"; } ``` > 注意:使用 `u` 标志表示 UTF-8 编码。 --- ## ✅ 6. 匹配数字(整数或小数) ```php $number = "123.45"; if (preg_match("/^-?\d*\.?\d+$/", $number)) { echo "有效数字"; } else { echo "无效数字"; } ``` --- ## ✅ 7. 匹配密码(至少 6 位,含大小写字母和数字) ```php $password = "Passw0rd"; if (preg_match("/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{6,}$/", $password)) { echo "有效密码"; } else { echo "无效密码"; } ``` --- ## ✅ 8. 替换 HTML 标签 ```php $html = "<p>Hello <b>World</b></p>"; $result = preg_replace("/<[^>]+>/", "", $html); echo $result; // 输出: Hello World ``` --- ## ✅ 9. 分割字符串(按空格、逗号、分号等) ```php $str = "apple, banana; orange"; $result = preg_split("/[,\s;]+/", $str); print_r($result); // Array ( [0] => apple [1] => banana [2] => orange ) ``` --- ## ✅ 10. 验证身份证号码(中国大陆) ```php $idCard = "110101199003072316"; if (preg_match("/^\d{17}[\dXx]$/", $idCard)) { echo "有效身份证"; } else { echo "无效身份证"; } ``` --- ## 📌 正则表达式常用函数 | 函数 | 说明 | |------|------| | `preg_match()` | 执行正则匹配 | | `preg_match_all()` | 执行全局匹配 | | `preg_replace()` | 执行正则替换 | | `preg_split()` | 按正则分割字符串 | | `preg_grep()` | 使用正则过滤数组元素 | --- ## 🔍 小提示 - 正则表达式需要使用 `/.../` 包裹。 - 使用 `i` 标志可以忽略大小写:`/pattern/i` - 使用 `u` 标志支持 UTF-8 编码:`/pattern/u` - 使用 `s` 标志可以让 `.` 匹配换行符:`/pattern/s` --- 如果你有具体的场景(如验证表单、提取数据等),我可以为你定制更合适的正则表达式。欢迎继续提问!
上一篇:
PHP常用函数:过滤HTML字符串
下一篇:
PHP动态网站开发中常用的小技巧
标题录入,一次不能超过6条
返回顶部
留言
留言
评论