如何从字符串中获取前两个唯一单词并用下划线(_)替换空格

斯图皮尔

情况就是这样,我有一个字符串变量包含一个带标题的全名。我只想得到名字,没有昏迷和标题。然后我用下划线 (_) 替换空格结果。

我试过的:

$name = 'John Doe, Ph.D'
$get_name = preg_split('/[\s,]+/', $name, 2);
$username = strtolower($get_name[0] . '_' . $get_name[1]);

dd($get_name, $username); //result : john_doe, ph.d

如何得到如下结果:john_doe从变量$name

缺口

您可以使用preg_replace先将第二个名称(如果存在)之后的所有内容替换到末尾,然后将空格替换为_,并将小写输入传递给它。'Fred , M.Sc'这允许您支持输入,例如'Fred John Doe , B.A'

$name = 'John Doe, Ph.D';
$get_name = preg_replace(array('/^([a-z]+(?:\s+[a-z]+)?).*$/', '/\s+/'), array('$1', '_'), strtolower($name));
echo $get_name;
echo "\n";
$name = 'Fred , M.Sc';
$get_name = preg_replace(array('/^([a-z]+(?:\s+[a-z]+)?).*$/', '/\s+/'), array('$1', '_'), strtolower($name));
echo $get_name;
echo "\n";
$name = 'Fred John Doe , B.A';
$get_name = preg_replace(array('/^([a-z]+(?:\s+[a-z]+)?).*$/', '/\s+/'), array('$1', '_'), strtolower($name));
echo $get_name;
echo "\n";
$name = 'John Doe';
$get_name = preg_replace(array('/^([a-z]+(?:\s+[a-z]+)?).*$/', '/\s+/'), array('$1', '_'), strtolower($name));
echo $get_name;
echo "\n";
$name = 'Fred';
$get_name = preg_replace(array('/^([a-z]+(?:\s+[a-z]+)?).*$/', '/\s+/'), array('$1', '_'), strtolower($name));
echo $get_name;

输出:

john_doe
fred
fred_john
john_doe
fred

3v4l.org 上的演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从字符串中获取前两个唯一单词并用下划线(_)替换空格

如何在最后两个下划线之间获取字符串

提取/匹配两个单词之间带有下划线“_”的字符串

如何用下划线替换空白,并用字符串的空白替换下划线?

如何在Python 2.7中编写正则表达式以返回字符串中的两个单词,且两个单词之间用下划线表示

sed用2个字符串之间的下划线替换空格

如何在JavaScript中以特殊字符开头的单词内的空格替换下划线?

如何用正则表达式替换下划线前的两个第一个字符?

如何使用javascript用下划线替换字符串中存在的所有空格?

如何在字符串中用_(下划线)替换空格?

用下划线替换匹配的子字符串中的空格

使用下划线比较两个对象并用一个对象替换公共值

如何删除java中两个单词之间除下划线外的所有特殊字符?

用R字符串中的反斜杠下划线“ \ _”替换下划线“ _”

如何用下划线替换字符串的字母?

如何替换字符串中一起出现的 2 个或更多特殊字符或下划线 Python

提取两个下划线之间的虚线字符串

如何从kdb中的字符串中删除空格和下划线?

如何在包含至少一个下划线和大写字母的字符串中查找单词

如何从bash中的下划线分隔的字符串中提取前两部分?

检查字符串是否包含两个单词或特殊字符,并且在PHP中使用下划线

我的数组包含一个空格[“”]。当我用下划线加入空格时,结果字符串中的空格元素在html中不可见

如何从字符串中获取前两个单词?

如何获取字符串中的前两个单词 Flutter

将字符串的每个字符显示为下划线,每个下划线 ruby 之间有一个空格

用下划线替换空格(忽略字符串开头或结尾的空格)

创建新列,并用下划线作为定界符填充同一df中添加的字符串

如何使用Java中的QueryBuilder从Elasticsearch中的字符串中的下划线获取值?

在字符串值内用空格替换下划线字符