我想要做的只是获取句子中的所有第一个字符,我知道substr
可以做到这一点,但我的substr
只能获得一个字符。
我现在使用此代码,但只获取H
而不是HW
substr($string,0,1);
我想要的是
$string = "Hello World";
$result = "HW";
知道怎么做吗?
由于
答案 0 :(得分:2)
$string = 'Hello, World!';
$result = '';
foreach (preg_split('#[^a-z]+#i', $string, -1, PREG_SPLIT_NO_EMPTY) as $word) {
$result .= $word[0];
}
var_dump($result);
答案 1 :(得分:0)
你可以轻松地创建一个循环来检查char的当前索引是否为大写(使用ctype_upper($ char)函数)。如果是资金,请将其添加到阵列或打印出来。
答案 2 :(得分:0)
试试这个:
function string_from_first_letter_of_each_word($string){
$sA = explode(' ', $string); $r = '';
foreach($sA as $v){
$r .= substr($v, 0, 1);
}
return $r;
}
echo string_from_first_letter_of_each_word('Hello World');
答案 3 :(得分:0)
您可以使用正则表达式:
$string = "Hello World";
preg_match_all('/^.|(?<=\s)./', $string, $matches);
var_dump($matches);
答案 4 :(得分:0)
又一个正则表达式解决方案:
$s = "hello world, it's me";
preg_match_all('/\b\w/', $s, $matches);
echo implode('', $matches[0]);
打印hwism
答案 5 :(得分:0)
这是一个没有regex
的解决方案:
$yourString = "This is a test";
$yourArray = explode(" ",$yourString);
$firstLetters = "";
foreach($yourArray as $word) {
$firstLetters .= strtoupper($word[0]);
}
echo $firstLetters; // > TIAT