Pēc vairāk nekā pusgada izstrādes tika izlaista 10.45 versija PERL saderīgo regulāro izteiksmju bibliotēkas. PCRE2, kas написана C valodā un izplatīta ar BSD licenci. Šī ir salīdzinoši liela izlaišana, iekļaujot jaunus funkcionalitātes uzlabojumus, dažus kļūdu labojumus un dažas izmaiņas, kas maz ietekmē atpakaļsavienojamību.
10.45 versija ir pirmais izlaišanas gadījums, ko sagatavojuši jaunie projekta uzturētāji, kuri izsaka pateicību Filippam Heizelam, PCRE un PCRE2 projektu radītājam un uzturētājam.
Izmaiņu saraksts:
- JIT kompilēšanas projekts sljit tagad tiek izmantots kā Git apakšmodulis.
- Unicode dati tika atjaunināti uz versiju 16.
- Nekļūstot jūtīgi pret reģistru, Unicode Ll, Lt un Lu īpašības ir mainītas, lai atbilstu Perl praksēm. Iepriekšējais modelis /p{Ll}/i ņēma vērā tikai mazos burtus (pat ja bija norādīta reģistra neievērošana). Šī izmaiņa ietekmē arī reģistru neievērojošos POSIX klasēm, piemēram, [:lower:].
- Pievienota jauna funkcija scan_substring. Tā ir jauna apgalvojuma tipa versija, kas saskaņo nozvejotā bloka saturu ar apakšveidni.
Piemēram, izteiksme b(w++)(*scan_substring:(1).+rh) atrod vārdu, kas satur retu angļu valodā bulostas kombināciju «rh», kas nav pašā sākumā. - Pievienota atbalsta simbolu klasēm, kas ir saderīgas ar UTS#18 (Unicode regulārās izteiksmes), izmantojot jaunu opciju PCRE2_ALT_EXTENDED_CLASS. Lai to izdarītu, jāizmanto [ kā metasimbols simbolu klasēs un operatori &&, — un ~~ kas ļauj viegli veikt simbolu klasēm atņemšanu un krusteniskā salīdzināšanu.
Piemēram, lai saskaņotu taizemiešu vai grieķu burtus (bet ne burtus vai citus simbolus no šīm rakstībām), var izmantot izteiksmi [p{L}&&[p{Thai}||p{Greek}]]. - Pievienota atbalsts paplašinātām simbolu klasēm Perl stilā, izmantojot sintaksi (?[…]). Tas arī ļauj izteikt atņemšanas un krusteniskos salīdzinājumus simbolu klasēm, bet izmantojot sintaksi, kas atšķiras no UTS#18 (Unicode regulārās izteiksmes).
Piemēram, lai saskaņotu taizemiešu vai grieķu burtus (bet ne burtus vai citus simbolus no šīm rakstībām), var izmantot izteiksmi (?[p{L} & (p{Thai} + p{Greek})]). - Ievērojami uzlabojumi simbolu klases saskaņošanas mehānismā. Kompilētās simbolu klasēs tagad ir kompaktākas un nodrošina ātrāku saskaņošanu lieliem vai sarežģītiem simbolu kopumiem, izmantojot bināro meklēšanu pa kopu.
- API ir pievienota jauna funkcija pcre2_set_optimize(), lai pārvaldītu optimizācijas.
- Vairāki uzlabojumi funkcijai pcre2_substitute().
- Citas uzlabojumi un kļūdu labojumi.
Avots: linux.org.ru
