Efter mere end et halvt års udvikling er 10.45 af det PERL-kompatible regulære udtryksbibliotek blevet frigivet PCRE2, skrevet i C og distribueret under BSD-licensen. Dette er en relativt stor udgivelse, inklusive nye funktioner, nogle fejlrettelser og et par ændringer, der har mindre indflydelse på bagudkompatibilitet.
Version 10.45 er den første udgivelse udarbejdet af de nye projektvedligeholdere, som takker Philip Hazel, skaberen og vedligeholderen af PCRE- og PCRE2-projekterne.
Liste over ændringer:
- JIT kompileringsprojekt sljit bruges nu som et Git-undermodul.
- Opdateret Unicode-data til version 16.
- Den versal-ufølsomme kortlægning af Unicode Ll-, Lt- og Lu-egenskaberne er blevet ændret for at matche Perl. Tidligere matchede /p{Ll}/i-mønsteret kun små bogstaver (selvom hvis der var angivet matchning uden store og små bogstaver). Denne ændring påvirker også forskellen mellem store og små bogstaver matchning af POSIX-klasser såsom [:lower:].
- Tilføjet ny funktion scan_substring. Dette er en ny type påstand, der matcher indholdet af en indfangningsblok mod et undermønster.
For eksempel finder udtrykket b(w++)(*scan_substring:(1).+rh) et ord, der indeholder den sjældne engelske bogstavsekvens "rh", som ikke er helt i begyndelsen. - Tilføjet understøttelse af karakterklasser, der er kompatible med UTS#18 (Unicode Regular Expressions), ved hjælp af den nye PCRE2_ALT_EXTENDED_CLASS mulighed. For at gøre dette skal du bruge [ som et metategn i karakterklasser og operatorerne &&, — og ~~, som giver dig mulighed for nemt at udføre subtraktioner og skæringer af karakterklasser.
For at matche thailandske eller græske bogstaver (men ikke bogstaver eller andre tegn i disse scripts), kan du f.eks. bruge udtrykket [p{L}&&[p{Thai}||p{græsk}]]. - Tilføjet understøttelse af udvidede karakterklasser i Perl-stil ved hjælp af (?[...]) syntaks. Det tillader også, at subtraktioner og skæringspunkter af karakterklasser kan udtrykkes, men med en anden syntaks end UTS#18 (Unicode regulære udtryk).
For at matche thailandske eller græske bogstaver (men ikke bogstaver eller andre tegn i disse scripts), kan du bruge udtrykket (?[p{L} & (p{Thai} + p{græsk})]). - Væsentlige forbedringer af karakterklassematchningsmekanismen. Kompilerede tegnklasser er nu mere kompakte og giver hurtigere matchning for store eller komplekse tegnsæt ved hjælp af binær søgning over sættet.
- En ny funktion pcre2_set_optimize() er blevet tilføjet til API'et for at administrere optimeringer.
- Mange forbedringer af pcre2_substitute()-funktionen.
- Andre forbedringer og fejlrettelser.
Kilde: linux.org.ru
