我使用下面的代码只显示字符串中每个单词的第一个字母。例如,"Hello World!“将显示为"H W“。但是,我还想包括这样的标点符号:"H W!“
如何修改代码以保留标点符号?
$editversetext = preg_split("/[\s,_-]+/", $editversetext);
$initials = "";
foreach ($editversetext as $w) {
$initials .= $w[0];
}
$initials = implode(' ',str_split($initials));
echo $initials . ".";
发布于 2018-06-30 05:59:25
要匹配并删除不是第一个的所有word characters,请使用\B
a non word boundary。
$str = preg_replace('/\B\w+/', "", $str);
请注意,数字属于\w
。如果需要,可以使用带有u
标志的[A-Za-z]
或unicode \pL
。
https://stackoverflow.com/questions/51108610
复制相似问题