当前位置:首页 > 行业动态 > 正文

PHP正则表达式合集

基础正则表达式

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