diff options
Diffstat (limited to 'src/main/java/eu')
| -rw-r--r-- | src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java | 12 | ||||
| -rw-r--r-- | src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java index d79df60..9c1edaa 100644 --- a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java +++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java @@ -123,6 +123,14 @@ public final class TextBereiniger { Pattern.compile( "^\\s*https?://\\S+\\s+Fassung vom \\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s+Seite \\d+ von \\d+\\s*$"); + // Niedersächsisches GVBl: laufende Fußzeile („Nds. GVBl. 2026 Nr. 10 vom 4. Februar 2026 Seite 2“) + // und Herausgeberzeile. Die Fußzeile steht zwischen zwei Aufzählungsgliedern und hängte sich sonst + // an den vorangehenden Befehl (Neufassungs-Zitat), sodass dessen Satzende-Anker nicht mehr greift. + private static final Pattern NDS_GVBL_FUSS = + Pattern.compile("^\\s*Nds\\. GVBl\\. \\d{4} Nr\\. \\d+ vom .+? Seite \\d+\\s*$"); + private static final Pattern NDS_HERAUSGEBER = + Pattern.compile("^\\s*Herausgeber: Niedersächsische Staatskanzlei\\s*$"); + /** Konjunktionen, die typischerweise auf einen Suspensivstrich folgen („Wirk- und …“). */ private static final Pattern KONJUNKTION = Pattern.compile("^(und|oder|sowie|bzw\\.|beziehungsweise)\\b.*"); @@ -292,7 +300,9 @@ public final class TextBereiniger { || LANDTAG_SEITENKOPF.matcher(zeile).matches() || LANDTAG_TITELKOPF.matcher(zeile).matches() || LANDTAG_MARKE.matcher(zeile).matches() - || REVOSAX_FUSS.matcher(zeile).matches(); + || REVOSAX_FUSS.matcher(zeile).matches() + || NDS_GVBL_FUSS.matcher(zeile).matches() + || NDS_HERAUSGEBER.matcher(zeile).matches(); } /** diff --git a/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java b/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java index 23260de..ada273c 100644 --- a/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java +++ b/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java @@ -69,7 +69,10 @@ final class LandesRechtTextParser { // dass „Satz“ auch „Satzungen“, „Nummer“ auch „Nummerierung“ trifft. + "(?!(?:Absatz|Abs\\.|Satz|Sätze|Nummer|Nr\\.|Buchstabe|Buchst\\." + "|und|bis|oder|sowie|des|der|dieses)(?![a-zäöüß]))" - + "((?:\\p{Lu}|\\().*)$"); + // Der Titel endet nicht auf einen Punkt: ein Normkopf trägt eine Überschrift, keinen + // ganzen Satz. So wird ein am Zeilenanfang stehender Querverweis-Satz („§ 7 GAPInVeKoSG + // findet entsprechend Anwendung.“) nicht fälschlich als Normkopf „§ 7“ gelesen. + + "((?:\\p{Lu}|\\().*[^.])\\s*$"); private static final Pattern WEGGEFALLEN_TITEL = Pattern.compile("^\\((?:aufgehoben|weggefallen)\\)$"); |
