Teilen Sie eine Zeichenfolge in zwei Teile

8

Ich muss eine Zeichenfolge in zwei Teile aufteilen. Die Zeichenfolge enthält durch Leerzeichen getrennte Wörter und kann eine beliebige Anzahl von Wörtern enthalten, z. B.

$string = "one two three four five";

Der erste Teil muss alle Wörter enthalten, mit Ausnahme der letzten. Der zweite Teil muss nur das letzte Wort enthalten.

Kann jemand beraten?

EDIT: Die beiden Teile müssen als Strings und nicht als Arrays zurückgegeben werden, z. B .:

$part1 = "one two three four";

$part2 = "five";

    
GSTAR 27.03.2012, 14:41
quelle

10 Antworten

21

Es gibt zwei Möglichkeiten, wie Sie vorgehen können.

Array-Operationen:

%Vor%

String-Operationen:

%Vor%     
Marc B 27.03.2012, 14:47
quelle
7

Sie müssen die Eingabezeichenfolge auf das letzte Leerzeichen aufteilen. Ein letztes Leerzeichen ist nun ein Leerzeichen, dem keine Leerzeichen folgen. Sie können also die negative Lookahead-Assertion verwenden, um den letzten Platz zu finden:

%Vor%     
codaddict 27.03.2012 14:45
quelle
5

Schauen Sie sich die Funktion explodieren in PHP an

  

Gibt ein Array von Strings zurück, von denen jeder ein Teilstring von string ist, der durch Aufteilen an Grenzen gebildet wird, die durch den string delimiter

gebildet werden
    
Bono 27.03.2012 14:46
quelle
2
%Vor%     
Mark Baker 27.03.2012 14:47
quelle
1
%Vor%     
Rocket Hazmat 27.03.2012 14:46
quelle
1

Das sollte es tun:

%Vor%     
Dan Lee 27.03.2012 14:48
quelle
1

Verwenden Sie strrpos , um die Position des letzten Platzzeichens zu erhalten, dann substr , um die Zeichenfolge mit dieser Position zu teilen.

%Vor%

Live-Beispiel

    
Alex Turpin 27.03.2012 14:48
quelle
1

So etwas würde es tun, obwohl es nicht besonders elegant ist.

%Vor%     
user783322 27.03.2012 14:49
quelle
1
%Vor%

Ausgabe:

Array ( [0] => one two three four five [1] => one two three four [2] => five )

Dann wären Ihre Teile $matches[1] und $matches[2]

    
nathanjosiah 27.03.2012 14:51
quelle
1

meine Lösung in Perl:) ... PHP und Perl sind ähnlich :)     $ string="eins fünf drei vier fünf";

%Vor%     
vangel paronov 27.03.2012 14:56
quelle

Tags und Links