regex-Frage

für eilige Fragen
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

regex-Frage

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Hallo zusammen!
Ich möchte gerne aus einem HTML-Code bestimmte tags entfernen. Allerdings möchte ich zusätzlich das schließende Tag eliminieren...
Beispiel:

<p class="code">codezeile1
codezeile2
codezeile3</p>
<p>hier steht text</p>

Mit dem folgenden Regex bekomme ich den Begin-tag:
(?i)<p class="code"[^>]*>
Ich möchte nun natürlich nicht alle </p> entfernen, sondern nur den, der zu dem <p class="code"> gehört.
Wie kann ich das machen?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: regex-Frage

Beitrag von StefanS (ForumUser / 35 / 0 / 9 ) »
Hallo ewx,
hatte ein vergleichbares Problem und wollte die DIV-Tags aus meinem HTML String entfernen. Versuch es mit dem folgenden Regex Snippet:

/<\/?div[^>]*\>/i

gruß StS

Folgende Benutzer bedankten sich beim Autor StefanS für den Beitrag:
ewx

♥ ABAP ...

Re: regex-Frage

Beitrag von a-dead-trousers (Top Expert / 4276 / 213 / 1140 ) »
Für die etwas schwierigeren Aufgabenstellungen würde sich auch XPATH anbieten:
http://www.abapforum.com/forum/viewtopi ... 418#p69418
bzw.
http://scn.sap.com/thread/1880498
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: regex-Frage

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
StefanS hat geschrieben:Hallo ewx,
hatte ein vergleichbares Problem und wollte die DIV-Tags aus meinem HTML String entfernen. Versuch es mit dem folgenden Regex Snippet:

/<\/?div[^>]*\>/i

gruß StS
Hi Stefan,
der Ausdruck ist schon mal nicht schlecht. Den merke ich mir... ;)
Allerdings werden damit alle DIV-Tags gefunden.
Leider funktioniert das nicht mehr, wenn das Tag ein Attribut hat.

Re: regex-Frage

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
a-dead-trousers hat geschrieben:Für die etwas schwierigeren Aufgabenstellungen würde sich auch XPATH anbieten:
http://www.abapforum.com/forum/viewtopi ... 418#p69418
bzw.
http://scn.sap.com/thread/1880498
Der Hinweis ist ebenfalls gut. Allerdings brauche ich ein reines Regex, da die Aufgabe nicht zwingend mit ABAP gelöst werden sollte.

Ich hatte gedacht, dass es so eine Art Look-ahead-Funktion oder IF-Funktion gibt mit der mal das lösen könnte.
Gibt es ja auch. Ich habe bloss keine Idee, wie man das auf das Problem anwenden könnte... :/

Re: regex-Frage

Beitrag von black_adept (Top Expert / 3944 / 105 / 886 ) »
Hier ist eine ganz interessante Antwort auf deine Frage bei stackoverflow. Nicht ganz die selbe Fragestellung - aber die Antwort gilt trotzdem.
http://stackoverflow.com/questions/1732 ... ained-tags

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ewx

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: regex-Frage

Beitrag von black_adept (Top Expert / 3944 / 105 / 886 ) »
Oh da ist in dem selben Thread den ich oben angesprochen habe noch eine weitere Antwort, die nicht ganz so literarisch daherkommt, aber dich trotzdem zum Grübeln bringen sollte *lach*
stackoverflow - s.o. hat geschrieben:I think the flaw here is that HTML is a Chomsky Type 2 grammar (context free grammar) and RegEx is a Chomsky Type 3 grammar (regular grammar). Since a Type 2 grammar is fundamentally more complex than a Type 3 grammar (see the Chomsky hierarchy), you can't possibly hope to make this work. But many will try, some will claim success and others will find the fault and totally mess you up.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: regex-Frage

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
black_adept hat geschrieben:Hier ist eine ganz interessante Antwort auf deine Frage bei stackoverflow. Nicht ganz die selbe Fragestellung - aber die Antwort gilt trotzdem.
http://stackoverflow.com/questions/1732 ... ained-tags
Welche Antwort meinst du?
Diese: You can't parse [X]HTML with regex. Because HTML can't be parsed by regex
Oder diese? <(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>

Die erste hilft mir nicht weiter. Zumal ich das auch nicht ganz glaube. Streng genommen mag das stimmen, aber nur, weil HTML selbst eben nicht zwingend - wie heißt das? - wohlgeformt sein muss (oder wie der zweite Literat sich ausdrückte: grammar 2).
Beim Zweiteren fehlt mir die geistige Macht zu erkennen, wo ich ein spezielles Tag <p> einbauen könnte...

Re: regex-Frage

Beitrag von a-dead-trousers (Top Expert / 4276 / 213 / 1140 ) »
ewx hat geschrieben:
a-dead-trousers hat geschrieben:Für die etwas schwierigeren Aufgabenstellungen würde sich auch XPATH anbieten:
http://www.abapforum.com/forum/viewtopi ... 418#p69418
bzw.
http://scn.sap.com/thread/1880498
Der Hinweis ist ebenfalls gut. Allerdings brauche ich ein reines Regex, da die Aufgabe nicht zwingend mit ABAP gelöst werden sollte.

Ich hatte gedacht, dass es so eine Art Look-ahead-Funktion oder IF-Funktion gibt mit der mal das lösen könnte.
Gibt es ja auch. Ich habe bloss keine Idee, wie man das auf das Problem anwenden könnte... :/
XPATH hat nichts mit ABAP zu tun.
Damit lassen sich alle Arten von XML-Dokumenten nach bestimmten Daten (Knoten, Attribute, Texte usw.) durchsuchen und und die Fundes zurückgeben.
Umgelegt auf deine Aufgabenstellung wäre die Lösung dann P[@class="code"]
Es kommt am Ende halt nur darauf an, wie die Programmiersprache die du einsetzt die XML/XSLT/XPATH Implementierung der W3C umgesetzt hat.
Für ABAP hab ichs ja schon gepostet ;)

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
ewx

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Aktuelle Forenbeiträge

PDF-Anzeige unter EDGE
vor 5 Tagen von jocoder 2 / 74

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

PDF-Anzeige unter EDGE
vor 5 Tagen von jocoder 2 / 74

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 132
Group Items auf einer Filterbar
vor 4 Wochen von Bright4.5 1 / 166