求一个正则表达式!!!

现有如下字符串

(Auth::user()->name,'154555')

需要用正则表达去掉第一个()和所有''
期望结果为

Auth::user()->name,154555

现在倒是有一个,不过,,它把所有的()都去掉了。。。

preg_replace("/[\(\)\\\"\']/", '', $expression)
阅读 2.5k
3 个回答
$str = "(Auth::user()->name,'154555')";
echo preg_replace("/^\(|\'|\)$/", '', $str);```

括号值针对 开头和结尾 

用 lookahead 和 lookbehind 来捕获由 () 字符 /[\((?!\))(?<!\))\)\\\"\']/

如果你要捕获的是代码里遇到第一个 () 和所有的 "' 那么只能用两个正则来过滤。

preg_replace("/\'/u", "", preg_replace("/\((.+)\)/", "$1", $str))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏