Na meer dan een halfjaar ontwikkeling is versie 10.45 van de PERL-compatibele reguliere expressie bibliotheek vrijgegeven. PCRE2, geschreven in de programmeertaal C en verspreid onder de BSD-licentie. Dit is een relatief grote release die nieuwe functies, enkele bugfixes en verschillende wijzigingen omvat die een beperkte impact hebben op de achterwaartse compatibiliteit.
Versie 10.45 is de eerste release die is voorbereid door de nieuwe projectondersteuners, die Filip Hazell bedanken, de maker en projectondersteuner van PCRE en PCRE2.
Wijzigingenlijst:
- Het JIT-compilatieproject sljit wordt nu als een Git-submodule gebruikt.
- De Unicode-gegevens zijn bijgewerkt naar versie 16.
- De hoofdlettergevoelige matching van Unicode-eigenschappen Ll, Lt en Lu is aangepast om overeen te komen met Perl. Eerder hield het patroon /p{Ll}/i alleen rekening met kleine letters (zelfs als er een case-insensitive matching werd opgegeven). Deze wijziging heeft ook invloed op de case-insensitive matching van POSIX-klassen, zoals bijvoorbeeld [:lower:].
- Een nieuwe functie scan_substring is toegevoegd. Dit is een nieuw type uitspraak dat de inhoud van een capteur met een subpatroon matcht.
Bijvoorbeeld, de expressie b(w++)(*scan_substring:(1).+rh) vindt een woord met de zeldzame Engelse lettercombinatie 'rh', die niet aan het begin staat. - Ondersteuning voor symbolen die compatibel zijn met UTS#18 (Unicode Reguliere Expressies) is toegevoegd met behulp van de nieuwe optie PCRE2_ALT_EXTENDED_CLASS. Hiervoor moet [ als een meta-symbool in symbolenklassen worden gebruikt en de operators &&, ā en ~~ kunnen eenvoudig substracties en intersecties van symbolenklassen uitvoeren.
Bijvoorbeeld, om te matchen met Thaise of Griekse letters (maar niet met letters of andere symbolen in deze schriften) kan de expressie [p{L}&&[p{Thai}||p{Greek}]] worden gebruikt. - Ondersteuning voor uitgebreide symbolenklassen in Perl-stijl is toegevoegd met de syntaxis (?[ā¦]). Dit maakt ook het uitdrukken van substracties en intersecties van symbolenklassen mogelijk, maar met een andere syntaxis dan UTS#18 (Unicode Reguliere Expressies).
Bijvoorbeeld, om te matchen met Thaise of Griekse letters (maar niet met letters of andere symbolen in deze schriften) kan de expressie (?[p{L} & (p{Thai} + p{Greek})]) worden gebruikt. - Significante verbeteringen in de mechanisme voor het toewijzen van karakterklassen. Gecompileerde karakterklassen zijn nu compacter en zorgen voor snellere toewijzing voor grote of complexe sets van karakters, met behulp van binaire zoekmethoden.
- Een nieuwe functie pcre2_set_optimize() is toegevoegd aan de API voor het beheren van optimalisaties.
- Verschillende verbeteringen aan de functie pcre2_substitute().
- Op 30 mei is de consoletool GCLI uitgebracht
Bron: linux.org.ru
