我不会使用正则表达式,可能像...
$str = trim($str, '"\'');
Run Code Online (Sandbox Code Playgroud)
第二个参数是你定义为标点符号的地方.
假设你真正的意思是删除不是字母,数字等的东西,我会选择......
$str = preg_replace('/^\PL+|\PL\z/', '', $str);
Run Code Online (Sandbox Code Playgroud)
可能取决于您对标点符号的定义.如果它是"除了字母数字之外的任何东西"或类似的东西,那么正则表达式可能是要走的路.但如果它是"句号,问号和感叹号"或其他一些可管理的列表,这将更容易理解:
trim($string, '?!.');
Run Code Online (Sandbox Code Playgroud)