Felix Riesterer: Reguläre Ausdrücke Kapitel finden

Beitrag lesen

Lieber Schorsch,

/(.*)((II|III|IV|V|VI|VII|VIII|IX|X)(.[0-9])*) | (SECTION) /i

Ich versuchte zu sagen:
  (.*)       irgendwas
  (II|...|X) gefolgt von irgend einer römischen Zahl
  (.[0-9])* beliebig mal gefolgt von Punkt Zahl
  )         gefolgt von einer schliessenden Klammer
  | SECTION  oder gefolgt von SECTION

Wenn "irgendwas" (.*) ohne ein Leerzeichen dazwischen von (II|III ...) gefolgt wird, wie soll dann Dein Suchmuster im Falle von "<absatz>III. Kapitel" zwischen "II" und "III" richtig unterscheiden? Es könnte ja "<absatz>I" + "II. Kapitel" finden und glücklich sein!

Ich würde vor der römischen Zahl auf entsprechende Zeichen prüfen, durch die absolut klar ist, dass sie nicht zu einer Kapitelnummerierung gehören, um dann die Kapitelnummerierung entsprechend zu trennen.

Römische Zahlen bestehen aus einem Verbund von ausgewählten großgeschriebenen Buchstaben ohne Leerzeichen... könntest Du das als regulären Ausdruck definieren?

Beispiel: /\S[IVXLCMD]*/ gefolgt von /.\d/ ergibt /\S[IVXLCMD]*.\d/

Liebe Grüße aus Ellwangen,

Felix Riesterer.