php 常见正则表达式

2023-11-29 22:52:11 举报文章

正则表达式是一种用于处理字符串的强大工具,在 PHP 中使用正则表达式可以进行字符串的匹配、查找、替换等操作,很多常见的字符串处理问题都可以通过正则表达式来解决。本文将介绍一些常见的 PHP 中使用的正则表达式。

1. 匹配邮箱地址

//by www.qzphp.cn
$email = "example@example.com";
$pattern = "/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{
2,
}
\b/";
if (preg_match($pattern, $email)) {
echo "邮箱地址有效";
}
 else {
echo "邮箱地址无效";
}

上述代码使用正则表达式匹配一个合法的邮箱地址。其中,/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/ 是正则表达式的模式,\b 表示单词的边界,[A-Za-z0-9._%+-] 表示匹配字母、数字、下划线、点、百分号、加号和减号,[A-Za-z0-9.-] 表示匹配字母、数字、点和减号,[A-Za-z]{2,} 表示匹配至少两个字母。如果匹配成功,则说明邮箱地址有效。

2. 替换字符串中的特殊字符

//by www.qzphp.cn
$string = "Hello, world!";
$pattern = "/[!@#$%^&*()_+]/";
$replacement = "";
$newString = preg_replace($pattern, $replacement, $string);
echo $newString;
 // 输出:
Hello world

上述代码使用正则表达式将字符串中的特殊字符替换为空字符。其中,[!@#$%^&*()_+] 是正则表达式的模式,表示匹配特殊字符。通过preg_replace() 函数进行替换操作,将匹配的特殊字符替换为空字符,得到新的字符串。

3. 验证手机号码

//by www.qzphp.cn
$phone = "12345678901";
$pattern = "/^1[3-9]\d{
9
}
$/";
if (preg_match($pattern, $phone)) {
echo "手机号码有效";
}
 else {
echo "手机号码无效";
}

上述代码使用正则表达式验证一个合法的手机号码。其中,/^1[3-9]\d{9}$/ 是正则表达式的模式,^1[3-9] 表示必须以1开头,后面跟着3到9之间的任意数字,\d{9} 表示随后的9个字符必须是数字。如果匹配成功,则说明手机号码有效。

4. 提取URL中的参数

//by www.qzphp.cn
$url = "http://www.example.com/path?name=John&age=25";
$pattern = "/\?([^#]+)/";
preg_match($pattern, $url, $matches);
$queryString = $matches[1];
parse_str($queryString, $parameters);
echo $parameters['name'];
 // 输出:
John
echo $parameters['age'];
 // 输出:25</
pre>

上述代码使用正则表达式从 URL 中提取参数,并将其保存到关联数组中。其中,/\?([^#]+)/ 是正则表达式的模式,\? 表示匹配问号,[^#]+ 表示匹配一个或多个不包含井号的字符。通过preg_match() 函数进行匹配操作,提取出参数字符串,并通过parse_str() 函数将参数字符串解析为关联数组。

通过上述例子,我们可以看到 PHP 中常见的正则表达式应用场景及使用方法。掌握正则表达式的使用,可以更高效地处理字符串,提高开发效率。

如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!