PHP preg_replace:从字符串的开头和结尾删除标点符号

时间:2011-11-27 03:53:48

标签: php regex

我可以在PHP中使用哪些正则表达式从字符串的开头和结尾删除所有标点符号?

4 个答案:

答案 0 :(得分:6)

我不会使用正则表达式,可能类似......

$str = trim($str, '"\'');

第二个参数是你定义的标点符号

假设真正意味着什么删除不是字母,数字等的东西,我会选择......

$str = preg_replace('/^\PL+|\PL\z/', '', $str);

答案 1 :(得分:6)

可能取决于您对标点符号的定义。如果它是“除了字母数字之外的任何东西”或类似的东西,那么正则表达式可能是要走的路。但如果它是“句号,问号和感叹号”或其他一些可管理的列表,这将更容易理解:

trim($string, '?!.');

答案 2 :(得分:3)

这取决于你所说的标点符号,但是:

preg_replace('/^\W*(.+?)\W*$/', '$1', $source);

答案 3 :(得分:0)

仅保留字母数字字符

preg_replace('/[^a-z0-9]+/i', '', $string);

所有ponctuations:

preg_replace('[:punct:]+', '', $string);