正如标题所说,我尝试使用preg_replace
删除括号内的所有内容。
示例:
$item = "We are all words that don't matter! (We do matter!)";
然后应该返回
$item = "We do matter!";
答案 0 :(得分:1)
您可以使用此正则表达式:[^(]*\(([^)]+)\)[^()]*
你可以在这里找到解释: https://regex101.com/r/2d1TzV/1
您尝试提取的文本将在第1组中捕获。
这是使用该正则表达式的PHP中的示例代码:
<?php
$item = "We are all words that don't matter! (We do matter!)";
$result = preg_filter("/[^(]*\(([^)]+)\)[^()]*/", "$1", $item);
echo $result;
答案 1 :(得分:1)
只需按照以下步骤操作:
function get_string_between($string, $start, $end){
$string = ' ' . $string;
$ini = strpos($string, $start);
if ($ini == 0) return '';
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
$fullstring = "We are all words that don't matter! (We do matter!)";
$shortstring = get_string_between($fullstring, '(', ')');
$finalstring = "(".$shortstring.")";
echo $finalstring;
这是工作示例:
那就是它。