如何在PHP中构建短语的缩略语

dms*_*enk 12 php string acronym

我正在寻找一种方法,我可以从输入字段中提取每个单词的第一个字母,并将其放入变量中.

示例:如果输入字段是"Stack-Overflow Questions Tags Users"变量的输出应该是类似的"SOQTU"

use*_*291 18

$s = 'Stack-Overflow Questions Tags Users';
echo preg_replace('/\b(\w)|./', '$1', $s);
Run Code Online (Sandbox Code Playgroud)

与codaddict相同,但更短

  • 对于unicode支持,将u修饰符添加到regex:preg_replace('...../u',


cod*_*ict 13

就像是:

$s = 'Stack-Overflow Questions Tags Users';

if(preg_match_all('/\b(\w)/',strtoupper($s),$m)) {
    $v = implode('',$m[1]); // $v is now SOQTU
}
Run Code Online (Sandbox Code Playgroud)

我正在使用正则表达式\b(\w)来匹配单词边界后面的单词字符.

编辑:要确保所有Acronym字符都是大写,您可以使用strtoupper如图所示.


Joh*_*ica 5

$initialism = preg_replace('/\b(\w)\w*\W*/', '\1', $string);
Run Code Online (Sandbox Code Playgroud)


Mar*_*ker 5

只是完全不同:

$input = 'Stack-Overflow Questions Tags Users';

$acronym = implode('',array_diff_assoc(str_split(ucwords($input)),str_split(strtolower($input))));

echo $acronym;
Run Code Online (Sandbox Code Playgroud)