Entfernen Sie neue Zeilen aus der Zeichenfolge
$string = "
put returns between paragraphs
for linebreak add 2 spaces at end
";
Entfernen möchten alle neuen Zeilen aus string.
Habe ich diese regex, es können alle von Ihnen fangen, das problem ist ich weiß nicht mit welcher Funktion soll ich es verwenden.
/\r\n|\r|\n/
$string
werden sollte:
$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
Kommentar zu dem Problem
Wenn Sie das tun Tausende von Ersetzungen, vermeiden Sie die Verwendung von
preg_replace
. Es ist fast doppelt so langsam wie str_replace
. Vielleicht finden Sie
s($str)->normalizeLineEndings(")
hilfreich, wie in diese standalone-Bibliothek. Es entfernt nicht nur LF, CR und CRLF, sondern auch beliebige Unicode-Zeilenumbruch. InformationsquelleAutor der Frage James | 2010-09-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie vorsichtig sein, der doppelte Zeilenumbrüche, die dazu führen, dass doppelte Leerzeichen. Verwenden Sie diese wirklich effizient regulären Ausdruck:
Mehrere Leerzeichen und Zeilenumbrüche ersetzt werden durch ein einzelnes Leerzeichen.
Edit: Wie andere haben darauf hingewiesen, diese Lösung hat Probleme passende single Zeilenumbrüche in zwischen den Wörtern. Dies ist nicht vorhanden im Beispiel, aber man kann leicht sehen, wie diese situation könnte auftreten. Eine alternative ist Folgendes zu tun:
InformationsquelleAutor der Antwort jwueller
Ein paar Kommentare auf der akzeptierten Antwort:
Den
+
bedeutet "1 oder mehr". Ich glaube nicht, dass Sie brauchen, um zu wiederholen\s
. Ich denke, man kann einfach schreiben'/\s+/'
.Auch, wenn Sie möchten, entfernen Sie Leerzeichen, erste und Letzte in der Zeichenfolge, fügen Sie
trim
.Mit diesen änderungen, würde der code sein:
InformationsquelleAutor der Antwort matsolof
Verwenden Sie einfach
preg_replace()
Bekommen konnte, Weg mit
str_replace()
auf diesen einen, obwohl der code sieht nicht so sauber:Sehen es live auf ideone
InformationsquelleAutor der Antwort NullUserException
InformationsquelleAutor der Antwort fabrik
Sollten Sie verwenden, str_replace für seine Geschwindigkeit und die Verwendung von Anführungszeichen mit einem array
InformationsquelleAutor der Antwort RobertPitt
PCRE-regex-Ersetzungen ausgeführt werden können mit preg_replace:
http://php.net/manual/en/function.preg-replace.php
Ersetzen würden, neue Zeile oder return-Zeichen durch ein Leerzeichen. Wenn Sie nicht wollen, etwas, um Sie zu ersetzen, ändern Sie das 2. argument
''
.InformationsquelleAutor der Antwort n00dle
Verwenden:
ersetzen-Serie Zeilenumbrüche mit einem leeren string:
oder möchten Sie wahrscheinlich ersetzen die Zeilenumbrüche durch ein Leerzeichen:
InformationsquelleAutor der Antwort netom
Whats about:
Sollte dies eine ziemlich robuste Lösung, weil \n funktioniert nicht richtig in alle Systeme wenn ich mich nicht falsch ...
InformationsquelleAutor der Antwort Johannes Grandy
Ich bin mir nicht sicher, ob dies einen Wert hat, gegen den bereits übermittelten Antworten, aber ich kann genauso gut posten.
InformationsquelleAutor der Antwort Peter
Escape-Sequenz
\R
entspricht, eine generische newlineRegex101 Demo
InformationsquelleAutor der Antwort Anton
dies ist das Muster das ich verwenden würde,
InformationsquelleAutor der Antwort CodeWrite
Diese auch entfernt tabs
InformationsquelleAutor der Antwort user3213174
vielleicht funktioniert:
InformationsquelleAutor der Antwort ziad eson
Können Sie versuchen, folgenden code beibehalten wird, alle Leerzeichen und neuen Zeilen in Ihrem text.
InformationsquelleAutor der Antwort PCMShaper
War ich überrascht zu sehen, wie wenig jeder weiß über regex.
Strip Zeilenumbrüche in php ist
In perl
Bedeutung ersetzt alle newline-Zeichen am Ende der Zeile (für Effizienz), Optional nach einem Wagenrücklauf - mit einem Leerzeichen.
\n oder \015 ist newline.
\r oder \012 ist carriage return.
? im regex bedeutet Spiel 1 oder null des vorherigen Zeichens.
$ regex bedeutet match-Ende der Zeile.
Den ursprünglichen und besten regex-Referenz ist perldoc perlre, die jeder Programmierer wissen sollte doc ziemlich gut:
http://perldoc.perl.org/perlre.html
Hinweis: nicht alle Funktionen unterstützt alle Sprachen.
InformationsquelleAutor der Antwort ekerner