English | 简体中文 | 繁體中文
查询

preg_match_all()函数—用法及示例

「 在字符串中搜索匹配正则表达式的所有结果,并将结果保存在一个数组中 」


函数名称:preg_match_all()

适用版本:PHP 4、PHP 5、PHP 7

函数描述:preg_match_all() 函数在字符串中搜索匹配正则表达式的所有结果,并将结果保存在一个数组中。

用法: preg_match_all(string $pattern, string $subject, array &$matches, int $flags = PREG_PATTERN_ORDER, int $offset = 0): int|false

参数:

  • $pattern:需要匹配的正则表达式。
  • $subject:需要搜索的字符串。
  • $matches:用于存储匹配结果的数组。函数执行完毕后,$matches[0] 将包含完整的模式匹配结果,$matches[1] 将包含第一个捕获子组的匹配结果,以此类推。
  • $flags(可选):用于指定匹配模式的标志,如 PREG_PATTERN_ORDER(默认值,按模式排序)或 PREG_SET_ORDER(按结果集排序)。
  • $offset(可选):用于指定开始搜索的偏移量。

返回值:

  • 如果匹配到至少一个结果,返回匹配到的次数(整数)。
  • 如果没有匹配到结果,返回 0。
  • 如果发生错误,返回 false。

示例:

$pattern = '/[0-9]+/';
$subject = 'There are 123 apples and 456 oranges.';
$matches = array();

if (preg_match_all($pattern, $subject, $matches)) {
    echo "匹配到的次数:" . count($matches[0]) . "<br>";
    echo "匹配到的结果:" . implode(", ", $matches[0]);
} else {
    echo "没有匹配到结果。";
}

输出:

匹配到的次数:2
匹配到的结果:123, 456

在以上示例中,我们使用正则表达式 /[0-9]+/ 来匹配字符串中的所有数字。函数执行后,将匹配到的次数和结果输出到浏览器。

补充纠错
上一个函数: preg_quote()函数
下一个函数: preg_match()函数
热门PHP函数
分享链接