- PHP中使用preg_match、preg_match_all、preg_replace等函数实现正则操作;2. 正则由普通字符和元字符组成,常用元字符包括. ^ $ + ? d w [] ();3. 常见应用:验证手机号/^1[3-9]d{9}$/、邮箱/^w+([-+.]w+)@w+([-.]w+).w+([-.]w+)$/、密码强度/^(?=.[a-z])(?=.[A-Z])(?=.d).{8,}$/;4. preg_match匹配首个结果,preg_match_all获取所有匹配,preg_replace替换内容,preg_split分割字符串;5. 示例:提取URL域名用preg_match(‘/https?://(1+)//’, $url, $matches),过滤HTML标签用preg_replace(‘//is’, ”, $text)。
/ ↩> ↩

PHP中使用正则表达式主要通过preg_系列函数实现,比如 preg_match、preg_match_all、preg_replace 等。掌握基本语法和常见模式,就能高效完成字符串匹配、验证和替换任务。
正则表达式基础语法
正则表达式是由普通字符和元字符组成的模式字符串,用于描述搜索规则。在PHP中,正则通常用分隔符包裹,如/pattern/或#pattern#。
常用元字符:. 匹配任意单个字符(换行符除外) ^ 匹配字符串开头 $ 匹配字符串结尾 * 前一个字符出现0次或多次 + 前一个字符出现1次或多次 ? 前一个字符出现0次或1次 d 匹配数字,等价于[0-9] w 匹配字母、数字、下划线 [] 字符组,匹配其中任意一个字符 () 分组,提取子匹配内容
常用验证场景与写法
实际开发中,正则常用于表单数据验证。以下是几个典型例子:
1. 验证手机号(中国大陆)
大陆手机号通常是1开头,共11位数字。
立即学习“PHP免费学习笔记(深入)”;
$phone = "13812345678";if (preg_match('/^1[3-9]d{9}$/', $phone)) { echo "手机号格式正确";} else { echo "手机号格式错误";}
2. 验证邮箱地址
基本邮箱格式:用户名@域名.后缀
$email = "user@example.com";if (preg_match('/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/', $email)) { echo "邮箱格式正确";} else { echo "邮箱格式不合法";}
3. 验证密码强度
要求:至少8位,包含大小写字母和数字
$password = "Abc12345";if (preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*d).{8,}$/', $password)) { echo "密码符合安全要求";} else { echo "密码需至少8位,含大小写和数字";}
4. 提取URL中的域名
从完整链接中提取主域名部分
$url = "https://www.example.com/path?query=1";preg_match('/https?://([^/]+)//', $url, $matches);if (!empty($matches[1])) { echo "域名是:" . $matches[1];}
常用preg函数说明
PHP处理正则的核心函数:
preg_match():执行正则匹配,只找第一个匹配项 preg_match_all():查找所有匹配项,返回数组 preg_replace():替换匹配内容 preg_split():按正则分割字符串
例如使用preg_replace过滤非法字符:
$text = "Hello alert(1)";$safe = preg_replace('//is', '', $text);echo $safe; // 输出 Hello
基本上就这些。熟练掌握常用模式和函数,结合实际需求调整正则表达式,就能在PHP中灵活运用正则完成各种验证和文本处理任务。
以上就是PHP正则表达式怎么写_PHP正则表达式匹配验证教程的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/14930.html
微信扫一扫
支付宝扫一扫