什么是正则表达式?
正则表达式是由字符组成的搜索模式。当您在文本中搜索数据时,可以使用此搜索模式来描述您要查找的内容。
正则表达式可以是一个单个字符,也可以是一个更复杂的模式。
正则表达式可用于执行各种类型的文本搜索和文本替换操作。
语法
在 PHP 中,正则表达式是由分隔符、模式和可选修饰符组成的字符串。
$exp = "/w3school/i";
在上面的例子中,/ 是分隔符,w3school 是要搜索的模式,i 是一个修饰符,它使搜索不区分大小写。
分隔符可以是任何非字母、非数字、非反斜杠和非空格的字符。最常见的分隔符是正斜杠(/),但当您的模式包含正斜杠时,选择其他分隔符(如 # 或 ~)会更方便。
正则表达式函数
PHP 提供了多种允许您使用正则表达式的函数。
最常见的函数包括:
使用 preg_match()
preg_match() 函数将告诉您字符串中是否包含与模式匹配的项。
实例
使用正则表达式在字符串中执行不区分大小写的搜索以查找 "w3school":
$str = "Visit W3School"; $pattern = "/w3school/i"; echo preg_match($pattern, $str);运行实例 »
点击 "运行实例" 按钮查看在线实例
使用 preg_match_all()
preg_match_all() 函数将告诉您字符串中与模式匹配的项的数量。
实例
使用正则表达式在字符串中执行不区分大小写的搜索,以计算 "ain" 出现的次数:
$str = "The rain in SPAIN falls mainly on the plains."; $pattern = "/ain/i"; echo preg_match_all($pattern, $str);运行实例 »
点击 "运行实例" 按钮查看在线实例
使用 preg_replace()
preg_replace() 函数将字符串中与模式匹配的所有项替换为另一个字符串。
实例
使用不区分大小写的正则表达式将字符串中的 "Microsoft" 替换为 "W3School":
$str = "Visit Microsoft!"; $pattern = "/microsoft/i"; echo preg_replace($pattern, "W3School", $str);运行实例 »
点击 "运行实例" 按钮查看在线实例
正则表达式修饰符
修饰符可以改变搜索的执行方式。
正则表达式模式
使用方括号来查找一系列字符:
元字符
元字符是具有特殊含义的字符:
量词
量词定义数量:
注意:如果您的表达式需要搜索特殊字符之一,您可以使用反斜杠(\)来转义它们。例如,要搜索一个或多个问号,您可以使用以下表达式:$pattern = '/\?+/';。
分组
您可以使用括号 ( ) 将量词应用于整个模式。它们还可以用于选择模式的一部分作为匹配项。
实例
使用分组通过查找 ba 后跟两个 na 实例来搜索单词 "banana":
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str);
运行实例 »点击 "运行实例" 按钮查看在线实例
完整的 RegExp 参考手册
如需完整参考,请转到我们的完整 PHP 正则表达式参考手册。
该参考包含所有正则表达式函数的描述和实例。
