当前位置: 首页> 最新文章列表> PHP教程:使用正则表达式提取所有括号内的内容

PHP教程:使用正则表达式提取所有括号内的内容

gitbox 2025-07-17

什么是正则表达式?

正则表达式是一种用于描述字符串匹配规则的工具,广泛应用于编程语言、文本编辑器及命令行工具中。通过字符和操作符的组合,正则表达式能够精准匹配特定的字符串模式,方便实现查找、替换和提取操作。

在正则表达式中,方括号用来定义字符集合,而圆括号用于分组。实际开发中,我们常常需要提取字符串中括号内的内容,下面将以PHP为例,讲解如何实现这一需求。

如何使用 PHP 实现匹配括号内的内容?

利用 preg_match 函数进行匹配

PHP内置的preg_match函数可以用于正则表达式匹配操作。其基本功能是在字符串中搜索符合模式的内容,若找到则返回1,否则返回0或FALSE。preg_match的参数主要包括:

<span class="fun">preg_match($pattern, $subject, $matches);</span>

其中,$pattern为正则表达式模式,$subject是待匹配的字符串,$matches用于存放匹配结果。

正则表达式匹配所有括号内的内容示例

下面示例展示了如何使用正则表达式匹配字符串中所有圆括号内的内容:

$pattern = '/\((.*?)\)/';
$subject = 'This is a (example) string with (multiple) pairs of (parentheses).';
preg_match_all($pattern, $subject, $matches);
print_r($matches[1]);

解释如下:$pattern中的\((.*?)\)表示匹配被圆括号包围的任意内容,其中.*?是非贪婪匹配,确保提取最小范围的括号内容。

preg_match_all函数会匹配字符串中所有符合模式的部分,结果存储在$matches数组中。$matches[1]包含所有括号中的内容。

示例输出结果

Array
(
    [0] => example
    [1] => multiple
    [2] => parentheses
)

从结果可以看出,代码成功提取了字符串中所有括号内的内容。

总结

正则表达式是处理字符串匹配和提取的强大工具。在PHP中,通过preg_match或preg_match_all函数结合合适的正则表达式,可以方便地实现对括号中内容的提取。本例中的表达式/\((.*?)\)/即是针对圆括号内文本的高效匹配方案,适用于各种实际应用场景。