2017-05-22 3 views
2

ich eine Zeichenfolge haben, die einen Raum zwischen Trennzeichen geben müssen, zum Beispiel:Giving einen Raum zwischen Begrenzer

Oceans and lakes have much in common,but they are also quite different.

die erwartete Ausgabe sollte wie unten sein:

Oceans and lakes have much in common , but they are also quite different .

Ich habe es mit preg_replace versucht und ich kann nur einen Platz im nächsten Zeichen geben.

Hier ist mein Code:

$string = "Oceans and lakes have much in common,but they are also quite different." $string = preg_replace('/([\.,\?\!\:])/',"\\1 ",$string);

Und die Ausgabe:

Oceans and lakes have much in common, but they are also quite different.

Jede Hilfe ist sehr geschätzt.

+0

Sie bitte mehr Code zu Ihrer Frage hinzufügen? – Farini

+0

Code hinzugefügt @Farini –

Antwort

1

ein Leerzeichen vor dem \\1 Referenz Setzen Sie in den Ersatz (zweites Argument)

$string = preg_replace('/([\.,\?\!\:])/'," \\1 ",$string);

1

Versuchen preg_replace('/([\.\?\!\:])/'\ \,\ \"\\1 ",$string); Nicht sicher über PHP, aber in Bash müssen Sie weiße Räume entkommen.