Po více než půl roku vývoje byl vydán 10.45 knihovny pravidelných výrazů kompatibilních s PERL. PCRE2, napsaná v jazyce C a šířená pod licencí BSD. Jedná se o poměrně velké vydání, které zahrnuje nové funkce, některé opravy chyb a několik změn, které mají malý dopad na zpětnou kompatibilitu.
Verze 10.45 je prvním vydáním, které připravili noví správcové projektu, kteří děkují Philipu Hazelovi, tvůrci a správci projektů PCRE a PCRE2.
Seznam změn:
- Projekt JIT-kompilace sljit je nyní používán jako submodul Git.
- Byla aktualizována data Unicode na verzi 16.
- Nesenzitivní porovnávání vlastností Unicode Ll, Lt a Lu bylo změněno tak, aby odpovídalo Perl. Dřívější vzor /p{Ll}/i bral v úvahu pouze znaky malého písmene (i když bylo uvedeno porovnání bez ohledu na velikost písmen). Tato změna se také dotýká nesenzitivního porovnání tříd POSIX, například [:lower:].
- Byla přidána nová funkce scan_substring. To je nový typ prohlášení, které porovnává obsah zachyceného bloku s podvzorem.
Například výraz b(w++)(*scan_substring:(1).+rh) nalezne slovo obsahující v angličtině vzácnou sekvenci písmen „rh“, která není na samém začátku. - Byla přidána podpora tříd znaků kompatibilních s UTS#18 (Unicode Regular Expressions) pomocí nové možnosti PCRE2_ALT_EXTENDED_CLASS. K tomu je třeba použít [ jako metaznak ve znakových třídách a operátory &&, — a ~~ což usnadňuje provádění rozdílů a průniků znakových tříd.
Například pro porovnání thajských nebo řeckých písmen (ale ne písmen a dalších znaků v těchto písmenech) lze použít výraz [p{L}&&[p{Thai}||p{Greek}]]. - Byla přidána podpora rozšířených tříd znaků ve stylu Perl pomocí syntaxe (?[…]). To také umožňuje vyjadřovat rozdíly a průniky znakových tříd, ale s použitím syntaxe odlišné od UTS#18 (Unicode Regular Expressions).
Například pro porovnání thajských nebo řeckých písmen (ale ne písmen a dalších znaků v těchto písmenech) lze použít výraz (?[p{L} & (p{Thai} + p{Greek})]). - Významná vylepšení v mechanismu porovnávání tříd znaků. Skompilované třídy znaků jsou nyní kompaktnější a umožňují rychlejší porovnávání pro velké nebo složité sady znaků pomocí binárního vyhledávání v sadě.
- Do API byla přidána nová funkce pcre2_set_optimize() pro správu optimalizací.
- Spousta vylepšení funkce pcre2_substitute().
- Další vylepšení a opravy chyb.
Zdroj: linux.org.ru
