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
