基础正则表达式
1、匹配数字
(图片来源网络,侵删)
/^d+$/
2、匹配字母
/^[azAZ]+$/
3、匹配汉字
/^[u4e00u9fa5]+$/
4、匹配邮箱
/^[azAZ09_]+@[azAZ09_]+(.[azAZ09_]+)+$/
5、匹配手机号
/^1[3456789]d{9}$/
高级正则表达式
1、匹配URL
/^(https?://)?([daz.]+).([az.]{2,6})([/w .]*)*/?$/
2、匹配IP地址
/((25[05]|2[04]d|[01]?dd?).){3}(25[05]|2[04]d|[01]?dd?)/
3、匹配日期(YYYYMMDD)
/^d{4}d{2}d{2}$/
4、匹配时间(HH:mm:ss)
/^d{2}:d{2}:d{2}$/
5、匹配身份证号码(18位)
/^d{6}(18|19|20)?d{2}(0[19]|1[02])(0[19]|[12][09]|3[01])d{3}[09Xx]$/
常用正则表达式函数
1、preg_match():检查字符串是否匹配正则表达式,返回匹配次数。
preg_match($pattern, $subject, $matches);
2、preg_match_all():检查字符串是否匹配正则表达式,返回所有匹配项。
preg_match_all($pattern, $subject, $matches);
3、preg_replace():替换字符串中与正则表达式匹配的部分。
preg_replace($pattern, $replacement, $subject);
4、preg_replace_callback():使用回调函数替换字符串中与正则表达式匹配的部分。
preg_replace_callback($pattern, $callback, $subject);
正则表达式实战案例
1、提取URL中的域名和路径
“`php
function getDomainAndPath($url) {
if (preg_match(‘/^(https?://)?([daz.]+).([az.]{2,6})([/w .]*)*/?$/’, $url, $matches)) {
return [
‘domain’ => $matches[2] . ‘.’ . $matches[3],
‘path’ => ‘/’ . ltrim($matches[5], ‘/’),
];
} else {
return [‘error’ => ‘Invalid URL’];
}
}
“`
2、验证密码强度(至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符)
“`php
function validatePassword($password) {
if (preg_match(‘/^(?=.*[az])(?=.*[AZ])(?=.*d)(?=.*[@$!%*?&])[AZazd@$!%*?&]{8,}$/’, $password)) {
return true;
} else {
return false;
}
}
“`
评论(0)