繁体   English   中英

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

[英]PHP preg_replace: remove punctuation from beginning and end of string

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

我不会使用正则表达式,大概是...

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

第二个参数是您定义为标点符号的位置

假设您真正的意思剔除不是字母,数字等的内容 ,那么我会选择...

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

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

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

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

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

只保留字母数字字符

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

对于所有的动作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM