欢迎访问宙启技术站
智能推送

PHP 正则表达式函数手册

发布时间:2023-06-03 06:44:23

正则表达式是一种强大的字符匹配工具,可以快速准确地匹配复杂的文本模式。在 PHP 中,可以使用正则表达式函数来实现对字符串的检索、替换、过滤等操作,提高编程效率。

本文将为你介绍 PHP 中常用的正则表达式函数,并提供使用示例,帮助你更好地理解和应用正则表达式。

1. preg_match

preg_match 是 PHP 中最常用的正则表达式函数之一,用于检索字符串中是否存在与正则表达式匹配的内容。其基本语法格式为:

preg_match($pattern, $string, $matches);

其中,$pattern 为正则表达式模式,$string 为要进行匹配的字符串,$matches 为可选参数,用于存储匹配结果。

下面是一个简单的示例:

$str = "Hello, World!";
$pattern = "/world/i";
if (preg_match($pattern, $str, $matches)) {
    echo "匹配成功!";
} else {
    echo "匹配失败!";
}

该示例检索字符串 $str 中是否存在与正则表达式模式 $pattern 匹配的字符串。其中,/i 表示忽略大小写,$matches 数组存储了匹配结果。

2. preg_replace

preg_replace 是 PHP 中用于替换字符串中与正则表达式匹配的内容的函数。其基本语法格式为:

preg_replace($pattern, $replacement, $string);

其中,$pattern 为要进行匹配的正则表达式模式,$replacement 为要替换的字符串,$string 为要进行替换的原始字符串。

下面是一个简单的示例:

$str = "Hello, World!";
$pattern = "/world/i";
$replacement = "PHP";
echo preg_replace($pattern, $replacement, $str);

该示例将字符串中与正则表达式模式 $pattern 匹配的字符串,用 $replacement 替换,最终输出替换后的结果。

3. preg_split

preg_split 是 PHP 中用于将字符串按照正则表达式模式分割成数组的函数。其基本语法格式为:

preg_split($pattern, $string, $limit, $flags);

其中,$pattern 为要进行匹配的正则表达式模式,$string 为要进行分割的原始字符串,$limit 为可选参数,用于限制分割的数组长度,$flags 为可选参数,用于指定分割的规则。

下面是一个简单的示例:

$str = "Hello, World!";
$pattern = "/\s*,\s*/";
print_r(preg_split($pattern, $str));

该示例将字符串按照逗号分割,输出分割后的数组结果。

4. preg_match_all

preg_match_all 是 PHP 中用于检索字符串中所有与正则表达式模式匹配的内容的函数。其基本语法格式为:

preg_match_all($pattern, $string, $matches, $flags);

其中,$pattern 为要进行匹配的正则表达式模式,$string 为要进行检索的原始字符串,$matches 用于存储匹配结果,$flags 为可选参数,用于指定检索的规则。

下面是一个简单的示例:

$str = "Hello, World! I love PHP world";
$pattern = "/world/i";
if (preg_match_all($pattern, $str, $matches)) {
    echo "匹配成功!";
    print_r($matches);
} else {
    echo "匹配失败!";
}

该示例检索字符串中所有与正则表达式模式 $pattern 匹配的字符串,并输出所有匹配结果。

5. preg_quote

preg_quote 是 PHP 中用于将正则表达式中特殊字符转义的函数,避免这些字符被误认为具有特殊含义。其基本语法格式为:

preg_quote($string, $delimiter);

其中,$string 为要进行转义的字符串,$delimiter 为可选参数,用于指定正则表达式的分隔符。

下面是一个简单的示例:

$str = "Hello, (), ?.*[]";
$pattern = "/".preg_quote("Hello, (), ?.*[]")."/";
echo preg_match($pattern, $str);

该示例将字符串 $str 中的所有特殊字符进行转义,并用转义后的字符串作为正则表达式模式进行匹配。