lksfltn
Goto Top

Multiline suche in notepad++ mit hilfe von regular expressions

Hallo Leute,

ich muss in einem XML-Dokument nach allen überschriften suchen.
Leider bekomme ich den Suchstring nicht erstellt.
Kann mir bitte jemand weiterhelfen, der sich mit regex auskennt?

ausschnitt meines Codes:

<w:pPr>
<w:pStyle w:val="CETberschrift2"/>
<w:ind w:left="576" w:hanging="576"/>
</w:pPr>
<w:bookmarkStart w:id="135" w:name="_Toc445556323"/>
<w:bookmarkStart w:id="136" w:name="_Toc447694562"/>
<w:bookmarkStart w:id="137" w:name="_Toc321555678"/>
<w:r w:rsidRPr="007A6A4C">
<w:t>Antenna gain</w:t>
</w:r>
<w:bookmarkEnd w:id="135"/>
<w:bookmarkEnd w:id="136"/>
<w:bookmarkEnd w:id="137"/>

Was bei jeder Überschrift vorkommt ist:

<w:ind w:left="576" w:hanging="576"/>

Meine Idee war also folgendermaßen zu suchen:

Zeilenanfang mit "<w:ind w:left="576" w:hanging="576"/>" bis erste Zeile, die mit "</w:t>" endet

Ich bekomm das ganze einfach nicht mit regex zusammengebaut...

Hoffe jemand hat das ganze voll drauf und kann mir aushelfen.

Danke!

Content-Key: 301277

Url: https://administrator.de/contentid/301277

Printed on: April 16, 2024 at 19:04 o'clock

Mitglied: 114757
114757 Apr 08, 2016 updated at 12:29:15 (UTC)
Goto Top
Moin,
frage ist doch was "könnte davon" variabel sein?
Variante 1 mit Submatch
<w:pStyle w:val="([^"]*)"/>\s*^<w:ind w:left="\d+" w:hanging="\d+"/>\s^</w:pPr>
Den Match findest du im ersten Submatch siehe runde Klammern.

Variante 2 mit Positive Lockbehind und Lookahead ohne Submatch
(?<=<w:pStyle w:val=")[^"]*(?="/>\s*^<w:ind w:left="\d+" w:hanging="\d+"/>\s^</w:pPr>)

Aktive Optionen für den Regex-Match sind für die obigen Pattern sind: CaseInsensitive, Multiline, DotMatchesNewLine (i,m,s)

Warum benutzt du keinen XML-Parser zum auslesen?

Gruß jodel32
Member: lksfltn
lksfltn Apr 08, 2016 at 12:35:53 (UTC)
Goto Top
erstmal danke für deine antwort.
ich will eigentlich nur alle bereiche in dem dokument durch lesezeichen markieren, die mit "<w:ind w:left="576" w:hanging="576"/>"
beginnen und mit dem ersten folgenden "</w:t>" aufhören.
Mitglied: 114757
114757 Apr 08, 2016 updated at 13:08:36 (UTC)
Goto Top
Na dann reicht ein
<w:ind w:left="576" w:hanging="576"/>.*?</w:t>  
Mit modifierOption DotMatchesNewline aktiv (s)