我想从左边获取所有文本,直到有一个空格,然后在空格后面再得到一个字符。
例如: “Brian Spelling”将是“Brian S”
我怎样才能在 php 中做到这一点?
在 ASP 中,代码如下所示:
strName1=left(strName1,InStr(strName1, " ")+1)
我想从左边获取所有文本,直到有一个空格,然后在空格后面再得到一个字符。
例如: “Brian Spelling”将是“Brian S”
我怎样才能在 php 中做到这一点?
在 ASP 中,代码如下所示:
strName1=left(strName1,InStr(strName1, " ")+1)
<?php
$strName1 = "Brian Spelling";
$strName1 = substr($strName1, 0, strpos($strName1, ' ')+2);
echo $strName1;
印刷
Brian S
用函数分割你的字符串,用explode
函数子串第二部分的第一个字符substr
。
$explodedString = explode(" ", $strName1);
$newString = $explodedString[0] . " " . substr($explodedString[1], 1);
$string = "Brian Spelling";
$element = explode(' ', $string);
$out = $element[0] . ' ' . $element[1]{0};
只是为了好玩,在建议下采纳 Rob Hruska 的答案,你可以做这样的事情:
$skip = array( 'jr.', 'jr', 'sr', 'sr.', 'md' );
$string = "Martin Luther King Jr.";
$element = explode(' ', $string);
$count = count( $element );
if( $count > 1)
{
$out = $element[0] . ' ';
$out .= ( in_array( strtolower( $element[ $count - 1 ] ), $skip ) )
? $element[ $count - 2 ]{0} : $element[ $count - 1 ]{0};
} else $out = $string;
echo $out;
- 刚刚编辑所以“雪儿”也可以工作
添加要跳过的任何后缀添加到 $skip 数组
正则表达式 - 确保它使用 /U 修饰符(不贪婪)命中第二个单词。
$t = "Brian Spelling something else";
preg_match( "/(.*) ./Ui", $t, $r );
echo $r[0];
你会得到“Brian S”。
试试下面的代码
$name="Brian Lara"
$pattern = '/\w+\s[a-zA-Z]/';
preg_match($pattern,$name,$match);
echo $match[0];
输出
Brian L