preg_replace()模式删除php中的括号和内容

Jak*_*ake 3 php design-patterns preg-replace

我想使用preg_replace()删除包含其内容的括号,但我无法在模式中使用延迟(非贪婪),因为结束括号是结束字符,括号之间的文本始终是随机字符长度,可以包含数字,下划线和连字符.

码-

$array = array(
   "Text i want to keep (txt to remove)",
   "Random txt (some more random txt)",
   "Keep this (remove)",
   "I like bananas  (txt)"
);

$pattern = "@pattern@";
foreach($array as $new_txt){
   $new_outputs .= preg_replace($pattern, '', $new_txt)."\n";
}
echo $new_outputs;
Run Code Online (Sandbox Code Playgroud)

想要输出 -

Text i want to keep
Random txt
Keep this
I like bananas
Run Code Online (Sandbox Code Playgroud)

我不太使用正则表达式,找不到任何解决我问题的方法.

Bar*_*mar 9

以下正则表达式应该这样做:

$pattern = '@\(.*?\)@';
Run Code Online (Sandbox Code Playgroud)

.*? 是任何事物的非贪婪匹配.