删除字符串后的字符?

Kar*_*rma 8 php string replace

我有这样的字符串:

John Miller-Doe - Name: jdoe
Jane Smith - Name: jsmith
Peter Piper - Name: ppiper
Bob Mackey-O'Donnell - Name: bmackeyodonnell
Run Code Online (Sandbox Code Playgroud)

我试图在第二个连字符后删除所有内容,以便我留下:

John Miller-Doe
Jane Smith
Peter Piper
Bob Mackey-O'Donnell
Run Code Online (Sandbox Code Playgroud)

所以,基本上,我正试图在" - 姓名:"之前找到一种方法来切断它.我一直在玩substr和preg_replace,但我似乎无法得到我希望得到的结果......有人可以帮忙吗?

Fel*_*ing 21

假设字符串将始终具有此格式,一种可能性是:

$short = substr($str, 0, strpos( $str, ' - Name:'));
Run Code Online (Sandbox Code Playgroud)

参考:substr,strpos


Jer*_*man 7

使用preg_replace()模式/ - Name:.*/:

<?php
$text = "John Miller-Doe - Name: jdoe
Jane Smith - Name: jsmith
Peter Piper - Name: ppiper
Bob Mackey-O'Donnell - Name: bmackeyodonnell";

$result = preg_replace("/ - Name:.*/", "", $text);
echo "result: {$result}\n";
?>
Run Code Online (Sandbox Code Playgroud)

输出:

result: John Miller-Doe 
Jane Smith 
Peter Piper 
Bob Mackey-O'Donnell
Run Code Online (Sandbox Code Playgroud)