下面是对于“10个实用的PHP正则表达式汇总”的详细攻略:
1. 纯数字匹配
如果需要匹配一串纯数字,可以使用\d+
来进行匹配。例如:
$str = '12345';
if (preg_match('/^\d+$/', $str)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为字符串$str
是一串纯数字。
2. 邮箱匹配
对于常见的邮件地址格式,可以使用正则表达式/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/
进行匹配。例如:
$email = 'example@example.com';
if (preg_match('/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/', $email)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$email
符合常见邮箱的格式要求。
3. URL 匹配
需要匹配 URL 地址时,可以使用正则表达式/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/
。例如:
$url = 'http://www.example.com';
if (preg_match('/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/', $url)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$url
是一个有效的 URL 地址。
4. 手机号匹配
手机号的正则表达式因地区而异,以下是通用格式的正则表达式:/^1[3456789]\d{9}$/
。例如:
$phone = '13912345678';
if (preg_match('/^1[3456789]\d{9}$/', $phone)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$phone
符合中国大陆手机号的格式要求。
5. IP 地址匹配
针对 IP 地址的匹配,可以使用正则表达式/^((25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)$/
。例如:
$ip = '192.168.1.1';
if (preg_match('/^((25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)$/', $ip)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$ip
是一个有效的 IP 地址。
6. HTML 标签匹配
需要提取 HTML 标签时,可以使用正则表达式/<[^>]+>/
进行匹配。例如:
$html = '<p>这是一段 HTML 标签</p>';
if (preg_match('/<[^>]+>/', $html, $matches)) {
var_dump($matches[0]);
} else {
echo '匹配失败';
}
这段代码能够匹配成功,输出'<p>'
,因为$html
中包含 HTML 标签。
7. 时间字符串匹配
对于常见的时间字符串,可以使用正则表达式/^(([01][0-9])|(2[0-4])):[0-5][0-9](:[0-5][0-9])?$/
进行匹配。例如:
$time = '12:20';
if (preg_match('/^(([01][0-9])|(2[0-4])):[0-5][0-9](:[0-5][0-9])?$/', $time)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$time
是一个有效的时间字符串。
8. 身份证号码匹配
针对中国大陆身份证号码的匹配,可以使用正则表达式/^\d{15}(\d{2}[\dx])?$/
。例如:
$id = '110101199001019123';
if (preg_match('/^\d{15}(\d{2}[\dx])?$/', $id)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$id
是一个有效的身份证号码。
9. 中文字符匹配
需要匹配中文字符时,可以使用正则表达式/^[\x{4e00}-\x{9fa5}]+$/u
。例如:
$chinese = '中文';
if (preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $chinese)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$chinese
包含了中文字符。
10. 科学计数法匹配
需要匹配科学计数法时,可以使用正则表达式/^[-+]?[0-9]+\.?[0-9]*[eE][-+]?[0-9]+$/
。例如:
$value1 = '1.23e-6';
$value2 = '1E+3';
if (preg_match('/^[-+]?[0-9]+\.?[0-9]*[eE][-+]?[0-9]+$/', $value1) && preg_match('/^[-+]?[0-9]+\.?[0-9]*[eE][-+]?[0-9]+$/', $value2)) {
echo '匹配成功';
} else {
echo '匹配失败';
}
这段代码能够匹配成功,因为$value1
和$value2
都是由科学计数法表示的数字。
希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:10个实用的PHP正则表达式汇总 - Python技术站