# regex für leerzeilen



## puerken (4. Apr 2011)

Hallo zusammen,

ich habe ein Problem mit meinem regex für Leerzeilen.
Ich möchte aus meinem HTML-Quellcode alle Leerzeilen entfernen.
Aktuell benutze ich [ \\t\\n], was im Chrome auch wunderbar funktioniert, im IE und im FF leider nicht.

Ich habe es auch bereits mit \r\n probiert, auch dies funktioniert leider nicht.
Ebenso klappt \s nicht (dort bekomme ich dann leider einen JS-Fehler).

Ich hoffe mir kann diesbzgl. jemand helfen.

Vielen Dank schon mal.


----------



## chalkbag (4. Apr 2011)

Für Steuerzeichen wäre evtl. \\s* besser geeignet


----------



## SlaterB (4. Apr 2011)

was hat denn ein Browser mit Java zu tun, geht es um JavaScript?
RegEx ist für Zeichen aus Strings gedacht, das funktioniert ENTWEDER ja ODER nein, nicht mal so mal so,
unterschiedlich vielleicht für verschiedene Eingaben, untersuche was der Text für Zeichen enthält, nicht alles ist ein ' ' oder ein Tab


----------



## hartzie (4. Apr 2011)

Ich glaube du bist im falschen Forum. Dies ist ein Java-Forum und kein Java-Script Forum. Zumal wenn ich mir das so anschaue fällt mir auch auf, dass du nicht die Leerzeilen entfernst, sondern Absätze. RegExp-Parser haben bekanntlich Probleme mit Absätzen, die ich schmerzlich gemacht habe.
Nur mal so am Rande ein kleines Zitat:
Wenn du ein Problem hast und denkst RegExp könnte dir die Lösung bringen, hast du anschließend zwei Probleme.

Also versuche doch das ganze anders als mit RegExp zu lösen.

[EDIT]

man war ich aber langsam...


----------



## puerken (4. Apr 2011)

Ok, dann gebe ich gerne mal ein kleines Beispiel.

Wenn man sich den HTML-Quellcode bei amazon anschaut, sind dort auch Leerzeilen und Absätze zu finden.
Und genau solche Leerzeilen bzw. Absätze möchte ich entfernen.


----------



## SlaterB (4. Apr 2011)

Amazon reicht nicht, weil der Weg ins Java-Programm nicht bekannt ist, es sei denn du liest direkt aus dem Internet in Java,
auch dann kann es von deinem Code abhängen,

ich frage mich nach wie vor das der Browser damit zu tun hat..


----------



## r.w. (4. Apr 2011)

Hallo puerken,

ich hab mal folgendes probiert und denke, damit bist Du schon relativ weit vorne:


```
private String convertHTML(String text) {
// return text.replaceAll( "[ \t\n\f\r]*\n" , "\n");
   return text.replaceAll( "[ \t\n\f\r]*\n" , "\n").replaceAll("^\n", "");
}
```

Ist vielleicht nicht optimal, aber schon mal ein Anfang bzw. ein Anreiz für weitere Versuche.
Bei einem Test mit dem Quelltext einer zufälligen Amazon-Seite blieb bei der auskommentierten 
Zeile (2) der erste Zeilenumbruch unberücksichtigt. Mit der aktiven Zeile (3) ist auch der weg.

Ich hoffe, das hilft Dir weiter.

Hmm, nachdem ich deine Problemstellung noch einmal genauer gelesen hab, bin ich 
auch nicht mehr so sicher, ob es Dir hier um Java oder Javascript geht?!

VG ROlf


----------



## Dimax (30. Aug 2018)

```
text=text.replaceAll("[\r]{2,}","");
```
Entfernt nur die Leerzeilen
Falls das noch jemand braucht.


----------



## mrBrown (30. Aug 2018)

Dimax hat gesagt.:


> ```
> text=text.replaceAll("[\r]{2,}","");
> ```
> Entfernt nur die Leerzeilen


`\r` ist kein Zeilenumbruch, sondern ein "Wagenrücklauf".
Unter Unixoiden ist das kein Teil des Zeilenumbruchs (dort ist es `\n`) und unter Windows nur die Hälfte (dort ist es `\r\n`), in beiden Fällen würden also der eigentlichen Zeilenumbrüche und damit auch die Leerzeilen bleiben.

(das Thema war sieben Jahre alt, das ist ja Leichenschändung der schlimmsten Art...)


----------



## Xyz1 (30. Aug 2018)

( Der Spaß geht hier weiter: https://www.java-forum.org/thema/leerzeilen-aus-einem-string-entfernen.182490/page-3 )

Bemerkung zu # 8 , alternation operator "|" in alternative groups (vielleicht)


----------



## Robat (30. Aug 2018)

Also wie in Post#18 schon mal beschrieben.

```
data = data.replaceAll("[\\r|\\r\\n|\\n]{2,}", "\n");
```


----------



## Xyz1 (30. Aug 2018)

Robat hat gesagt.:


> schon mal beschrieben


Ich habe die Leiche nicht ausgegraben! 

aber ja könnte richtig sein.


----------



## Dimax (31. Aug 2018)

DerWissende hat gesagt.:


> Ich habe die Leiche nicht ausgegraben!
> 
> aber ja könnte richtig sein.


Ja ich hab die Leiche zu Zomby gemacht weil ich das brauchte! Und keine vernünftige Lösung gefunden!

Aufrufen 3.800 spricht auch dafür!!!


----------



## mrBrown (31. Aug 2018)

Dimax hat gesagt.:


> Ja ich hab die Leiche zu Zomby gemacht weil ich das brauchte! Und keine vernünftige Lösung gefunden!
> 
> Aufrufen 3.800 spricht auch dafür!!!



Um eine vernünftige Lösung zu finden, reicht dein eigener Post. Die findest du nicht, wenn du irgendwo eine falsche Lösung postest, damit ist niemandem geholfen


----------



## Dimax (31. Aug 2018)

Die Leiche wurde geweckt nicht um wieder eingegraben zu werden.Es lebt ja noch)) Und wir alle gemeinsam haben schon eine für jeden passende Lösung gefunden.


----------

