PHP 正则表达式,无法跳过括号

PHP Regex, Failure to skip brackets

我想找到一个模式“and b_start in (ANYTHING)”并将其替换为空字符串。我的以下代码不起作用;恐怕这是由于模式中的括号造成的。任何人都可以帮助指出它有什么问题吗?非常感谢。

$a=" and b_start in (2,3,5,6...) and b_end in (4,5,3,4,5...)";
$b=preg_replace("/ and b_start in \(.*\)/", "", $a);

我希望 $b 到 return " 和 b_end in (4,5,3,4,5...)";

你需要让你的正则表达式变得懒惰,默认情况下它本质上是贪婪的,所以它会尽可能多地匹配Regex Ref

/ and b_start in \(.*?\)/

$a=" and b_start in (2,3,5,6...) and b_end in (4,5,3,4,5...)";
$b=preg_replace("/ and b_start in (.*?)/", "", $a);

echo $b;