Wenn ich reguläre Ausdrücke verwende, um Leerzeichen zu ersetzen, wird \s auch mit dem Zeilenende abgeglichen und nicht nur mit dem Leerzeichen in einer Zeile. Wie kann ich das beheben, um nur die Leerzeichen in einer Zeile zu ersetzen?
Antwort1
\s
steht für jede Art von Leerzeichen, also einfaches Leerzeichen, Tabulatoren, Zeilenumbrüche usw.
Für den horizontalen Abstand können Sie Folgendes verwenden \h
: Leerzeichen oder Tabellierung.
Wenn Sie nur Leerzeichen zwischen Wörtern abgleichen möchten, können Sie Folgendes verwenden:(?<=\S)\h+(?=\S)
Wo
(?<=\S)
ist ein positiver Lookbehind, der sicherstellt, dass wir vor dem(?=\S)
ist ein positiver Vorausblick, der sicherstellt, dass danach kein Leerzeichen steht.
Antwort2
Sie können nach den gewünschten Leerzeichen suchen, anstatt alle Leerzeichen auszuwählen.
Um beispielsweise ein oder mehrere Leerzeichen und Tabulatoren abzugleichen, verwenden Sie [ \t]+
. Beachten Sie, dass das Leerzeichen UND das \t-Zeichen abgeglichen werden.