Ich habe eine Datei mit mehreren Leerzeichen zwischen den Wörtern. Ich muss die Datei säubern und vorhandene Multi-Abstandssequenzen mit nur einem Leerzeichen ersetzen. Ich habe die folgende Aussage geschrieben, die überhaupt nicht funktioniert, und es scheint, dass ich einen großen Fehler mache.
%Vor%Meine Datei ist sehr einfach. Hier ist ein Teil davon:
%Vor%Ihre Regex ersetzt any Anzahl der Leerzeichen (einschließlich zero ) mit einem Leerzeichen. Sie sollten nur zwei oder mehr ersetzen (schließlich ist es sinnlos, ein einzelnes Leerzeichen durch sich selbst zu ersetzen):
%Vor%Was ich normalerweise mache, um mehrere Leerzeichen zu bereinigen, ist:
%Vor%Bedingungen / Hypothesen:
preg_replace
ist in Bezug auf CPU Natürlich, wenn die Bedingung # 1 nicht erfüllt ist, ist dieser Ansatz nicht sinnvoll, aber normalerweise.
Wenn # 1 erfüllt ist, aber keiner der anderen nicht (dies kann von den Daten, der Software (PHP-Version) oder sogar der Hardware abhängen), dann ist das Folgende möglicherweise schneller:
%Vor% Wenn mehrere Leerzeichen nur in etwa 2% Ihrer Zeichenfolgen vorkommen, ist die präventive Überprüfung mit strpos
wichtig, und Sie interessieren sich wahrscheinlich nicht sehr für die Optimierung der restlichen 2% der Fälle.
// Ihre Eingabe
$ Str = „Hjhajhashsh dwddd dddd sss ddd wdd ddcdsefe xsddd SCDC yyy5ty ewewdwdewde WWWE ddr3r dce eggrg vgrg fbjb nnn bh jfvddffv mnmb weer ffer3ef f4r4 34t4 rt4t4t 4t4t4t4t ffrr rrr ww ww ee3e iioi hj hmm mmmmm mmjm lk; '' kjmm ,,,, jjj hhh lmmlm mmmmm lklmm jlmm m ";
echo $ str. '
';