正则表达式将Myname“U Mysurname与”关联&引用;在PHP中

正则表达式将Myname“U Mysurname与”关联&引用;在PHP中,php,regex,Php,Regex,我需要一个正则表达式来替换这样的字符串 "Myname _MySurename" with "Myname" 这意味着我只需要我的名字,所以我的名字应该被删掉 我尝试了类似“/”的东西,但它只替换了“/(下划线) 如何在PHP中实现这一点 试试看: /\s_.+$/ “将空格(空格)替换为下划线和若干字符”。$确保在字符串的末尾匹配 这是未经测试的,但应该可以使用。您可以将下划线和以下单词替换为: $str = preg_replace('/_\w+/','',$str); 看起来名称

我需要一个正则表达式来替换这样的字符串

"Myname _MySurename"  with "Myname" 
这意味着我只需要我的名字,所以我的名字应该被删掉

我尝试了类似“/”的东西,但它只替换了“/(下划线) 如何在PHP中实现这一点

试试看:

/\s_.+$/
“将空格(空格)替换为下划线和若干字符”。
$
确保在字符串的末尾匹配


这是未经测试的,但应该可以使用。

您可以将
下划线和以下
单词替换为:

$str = preg_replace('/_\w+/','',$str);
看起来名称后面还有一个空格。因此,您可以使用:

$str = preg_replace('/\s*_\w+/','',$str);

从您的描述可以明显看出您
知道你的弦在哪里 被拆分
因此:最好不要使用正则表达式替换,
但使用regex split:

preg_split('/\s*_/', $text)
这将返回拆分项的列表, 获取第一个,例如通过:

...
$names = 'Myname_MySurename'; #  'Myname _MySurename';
# print first element of splitted array
$firstname = array_shift( preg_split('/\s*_/', $names) );
...
问候

rbo