2009-06-22 4 views
0

ich eine Zeichenfolge in zwei Teile geteilt werden soll, ist der String fast freien Text, zum Beispiel:preg_split aus gehen Mit ‚hallo wie geht es dir‘ auf [Hallo, wie geht's]

$string = 'hi how are you'; 

und ich möchte, dass die Spaltung wie folgt aussehen:

array(
    [0] => hi 
    [1] => how are you 
) 

ich habe versucht, diese Regex: /(\S*)\s*(\.*)/ aber auch wenn das zurückgegebene Array die richtige Größe hat, kommt die Werte leer.

Was sollte das Muster sein, das erforderlich ist, damit dies funktioniert?

Antwort

5

Was sind die Anforderungen? Ihr Beispiel scheint ziemlich willkürlich. Wenn alles, was Sie wollen, ist auf dem ersten Platz zu spalten und den Rest der Zeichenfolge in Ruhe lassen, dies würde es tun, mit explode:

$pieces = explode(' ', 'hi how are you', 2); 

der im Grunde sagt: „Split auf Räume und begrenzt die resultierenden Array 2 Elemente "

+1

+1 - I hate * * die Verwendung von regulären Ausdrücken, wenn sie gerade nicht benötigt wird. – karim79

+2

Das ist ein großartiger Name für eine Funktion. Ich wünschte, Java hätte eine Explosion(). –

+0

@ karim79: Ich hasse das auch ... @Paolo Bergantino: Danke, das ist genau meine Anforderung. – Cesar

0

Sie sollten nicht entkommen". in der letzten Gruppe. Sie versuchen, ein beliebiges Zeichen und keine wörtliche Periode zu finden.

Korrigiert: /(\S*)\s*(.*)/