RegEx:检查括号,获取文本并删除整个括号

时间:2014-11-17 11:53:30

标签: php regex

我需要检查字符串中是否有括号来提取其内容:

if (preg_match('/(?<=\()(.+)(?=\))/is', $element, $match)) {
    array_push($result, $match[1]);
    // Remove bracket from $element
}

但我也想删除$ element-var的完整括号。我该怎么做?

$element = "Any text (remove that)";
// result should be:
$match[1] = "remove that";
$element = "Any text";

1 个答案:

答案 0 :(得分:2)

我假设括号不是嵌套的。 preg_replace_callback示例:

$result = array();
$element = preg_replace_callback('~\(([^)]*)\)~', function ($m) use (&$result) {
    $result[]=$m[1];
    return '';
}, $element);