2016-10-18 2 views
0

Ich habe die folgende ZeichenfolgePHP REGEX bestimmten Teil vom Ende der Zeichenfolge entfernen

"DJ Antoine, Conor Maynard - Dancing In The Headlights - teledysk, tekst piosenki" 

und ich möchte nur bekommen:

"DJ Antoine, Conor Maynard - Dancing In The Headlights" 

Ich benutze regex, aber es funktioniert nicht:

^([^\;]+)$ - teledysk, tekst piosenki 
+0

die Zeichenfolge zwischen Split "-" und nur die ersten beiden Elemente halten. – JazZ

+0

Und regexp verwenden? Für zukünftige –

+0

Wie verwenden Sie '^ ([^ \;] +) $'? '^' und '$' sind der Anfang und das Ende der Zeichenfolge, Sie können sie nicht in der Mitte haben. https://regex101.com/r/nRhNYv/1 (wenn diese Zeichenfolge Ihre Regex ist, fehlt Ihre PHP-Verwendung aus Frage). – chris85

Antwort

1

Hier ist meine zwei Cent:

php > $s = "DJ Antoine, Conor Maynard - Dancing In The Headlights - teledysk, tekst piosenki"; 
php > $new_s = explode('-', $s, -1); 
php > echo implode('-', $new_s); 
DJ Antoine, Conor Maynard - Dancing In The Headlights 
0

Verwenden Sie preg_replace(), um zusätzlichen Teil der Zeichenfolge zu entfernen. Die Regex wählen zusätzliches Teil und ersetzen es durch leer.

$str = preg_replace("/-[\w\s,]+$/", "", $str); 

Ergebnis Siehe in demo

Verwandte Themen