regex für leerzeilen

puerken

Neues Mitglied
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.
 
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
 
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...
 
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.
 
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..
 
Hallo puerken,

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

Java:
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
 
Zuletzt bearbeitet:
Java:
text=text.replaceAll("[\r]{2,}","");
Entfernt nur die Leerzeilen
Falls das noch jemand braucht.
 
Java:
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...)
 
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 😉
 
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.
 

Zurück
Oben