preg_match
是 PHP 中用于执行正则表达式匹配的函数。要制定匹配规则,首先需要了解正则表达式的语法。以下是一些常用的正则表达式元字符和它们的功能:
.
:匹配任意单个字符(除了换行符)*
:匹配前面的子表达式零次或多次+
:匹配前面的子表达式一次或多次?
:匹配前面的子表达式零次或一次{n}
:匹配前面的子表达式恰好 n 次{n,}
:匹配前面的子表达式至少 n 次{n,m}
:匹配前面的子表达式至少 n 次,最多 m 次^
:匹配输入字符串的开始位置$
:匹配输入字符串的结束位置[]
:匹配方括号内的任意字符[^]
:匹配方括号外的任意字符|
:表示或,用于匹配多个选择()
:用于将几个子表达式组合为一个子表达式\
:用于转义特殊字符
以下是一些使用 preg_match
的示例:
- 匹配电子邮件地址:
$pattern = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/'; $email = 'example@example.com'; if (preg_match($pattern, $email)) { echo 'Email address is valid'; } else { echo 'Email address is invalid'; }
- 匹配电话号码:
$pattern = '/^\d{3}-\d{3}-\d{4}$/'; $phone = '123-456-7890'; if (preg_match($pattern, $phone)) { echo 'Phone number is valid'; } else { echo 'Phone number is invalid'; }
- 匹配 URL:
$pattern = '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/'; $url = 'https://www.example.com'; if (preg_match($pattern, $url)) { echo 'URL is valid'; } else { echo 'URL is invalid'; }
这些示例仅涉及正则表达式的基本语法。要创建更复杂的匹配规则,可以查阅 PHP 手册中正则表达式的相关章节。