PCRE2 10.45

PCRE2 10.45

Nach mehr als anderthalb Jahren Entwicklung wurde die Version 10.45 der PERL-kompatiblen regulären Ausdrücke veröffentlicht PCRE2, die in C geschrieben und unter der BSD-Lizenz vertrieben wird. Dies ist eine vergleichsweise große Veröffentlichung, die neue Funktionen, einige Fehlerkorrekturen und mehrere Änderungen enthält, die sich nur geringfügig auf die Abwärtskompatibilität auswirken.

Version 10.45 ist die erste Veröffentlichung, die von den neuen Projektverantwortlichen vorbereitet wurde, die Philip Hazel, den Schöpfer und verantwortlichen Projektleiter von PCRE und PCRE2, danken.

Änderungsprotokoll:

  • Das JIT-Compilation-Projekt sljit wird jetzt als Git-Submodul verwendet.
  • Die Unicode-Daten wurden auf die Version 16.
  • Das nicht sensible zum Fall passende Unicode-Eigenschaften Ll, Lt und Lu wurde geändert, um Perl zu entsprechen. Früher berücksichtigte das Muster /p{Ll}/i nur Kleinbuchstaben (auch wenn ein nicht fallsensitives Matching angegeben wurde). Diese Änderung wirkt sich auch auf das nicht fall-sensitive Matching von POSIX-Klassen aus, wie z.B. [:lower:].
  • Eine neue Funktion scan_substring wurde hinzugefügt. Dies ist ein neuer Typ von Aussage, der den Inhalt eines erfassten Blocks mit einem Submuster abgleicht.
    Zum Beispiel findet der Ausdruck b(w++)(*scan_substring:(1).+rh) ein Wort, das eine in der englischen Sprache seltene Buchstabenkombination 'rh' enthält, die nicht am Anfang steht.
  • Die Unterstützung von Zeichengruppen, die mit UTS#18 (Unicode-Regular Expressions) kompatibel sind, wurde durch die neue Option PCRE2_ALT_EXTENDED_CLASS hinzugefügt. Hierbei muss [ als Metazeichen in Zeichengruppen und die Operatoren &&, - und ~~ verwendet werden, was eine einfache Durchführung von Differenzen und Schnittmengen von Zeichengruppen ermöglicht.
    Zum Beispiel kann der Ausdruck [p{L}&&[p{Thai}||p{Greek}]] verwendet werden, um mit thailändischen oder griechischen Buchstaben (nicht aber mit Buchstaben oder anderen Zeichen aus diesen Schriften) übereinzustimmen.
  • Die Unterstützung für erweiterte Zeichengruppen im Perl-Stil wurde hinzugefügt, wobei die Syntax (?[…]) verwendet wird. Dies ermöglicht es ebenfalls, Differenzen und Schnittmengen von Zeichengruppen auszudrücken, aber mit einer anderen Syntax als UTS#18 (Unicode-Regular Expressions).
    Zum Beispiel kann der Ausdruck (?[p{L} & (p{Thai} + p{Greek})]) verwendet werden, um mit thailändischen oder griechischen Buchstaben (nicht aber mit Buchstaben oder anderen Zeichen aus diesen Schriften) übereinzustimmen.
  • Bedeutende Verbesserungen im Mechanismus der Klassensymbolzuordnung. Kompilierte Symbolklassen sind jetzt kompakter und bieten ein schnelleres Matching für große oder komplexe Zeichensätze durch binäre Suche im Set.
  • Eine neue Funktion pcre2_set_optimize() wurde der API hinzugefügt, um die Optimierungen zu steuern.
  • Eine Vielzahl von Verbesserungen der Funktion pcre2_substitute().
  • Empfehlungen der Linux Foundation zur Einhaltung von Sanktionen in Open-Source-Projekten

Quelle: linux.org.ru

60GB SSD 8Gb DDR4