Több mint fél éves fejlesztés után megjelent a 10.45-ös PERL-kompatibilis reguláris kifejezések könyvtár. PCRE2, amely C nyelven íródott és BSD licenc alatt terjesztik. Ez viszonylag nagy kiadás, új funkciókat, néhány hibajavítást és néhány, a visszafelé kompatibilitásra kis hatással lévő módosítást tartalmaz.
A 10.45-ös verzió az új projektkezelők által előkészített első kiadás, akik köszönetet mondanak Philip Hazelnek, a PCRE és PCRE2 projektek létrehozójának és karbantartójának.
Változások listája:
- A JIT-kompilálási projekt sljit mostantól Git almodulként használatos.
- Frissítve lett a Unicode adatok verziója 16.
- A Unicode Ll, Lt és Lu tulajdonságok esetén a kis- és nagybetű érzéketlen egyeztetése megváltozott, hogy megfeleljen a Perl-nek. Korábban a \p{Ll}/i minta csak a kisbetűs karaktereket vette figyelembe (még ha a nagy- és kisbetű érzéketlen egyeztetése is meg volt adva). Ez a módosítás a POSIX osztályok érzéketlen egyeztetésére is hatással van, például a [:lower:] osztályra.
- Új funkcióként került bevezetésre a scan_substring. Ez egy új típusú állítás, amely a megfogott blokk tartalmát egy al-mintával egyezteti.
Például a b(w++)(*scan_substring:(1).+rh) kifejezés egy angol nyelvben ritka 'rh' betűsorozatot tartalmazó szót talál, amely nem az elején található. - Lehetőség nyílt a Unicode Regular Expressions-hoz kompatibilis karakterosztályok támogatására UTS#18 (Unicode Reguláris Kifejezések) segítségével az új PCRE2_ALT_EXTENDED_CLASS opció használatával. Ehhez [ karaktert kell használni metakarakterként a karakterosztályokban és &&, - és ~~ operátorokat, amelyek lehetővé teszik a karakterosztályok egyszerű kivonását és metszését.
Például thai vagy görög betűk egyeztetéséhez (de nem a nyelvek írásmódjaiban más betűkhez vagy karakterekhez) a [p{L}&&[p{Thai}||p{Greek}]] kifejezést lehet használni. - Keletkezett a Perl stílusú kiterjesztett karakterosztályok támogatása a (?[…]) szintaxis használatával. Ez szintén lehetővé teszi a karakterosztályok kivonását és metszését, de eltérő szintaxis alkalmazásával UTS#18 (Unicode Reguláris Kifejezések).
Például a thai vagy görög betűk egyeztetésére (de nem más, az írásmódokban előforduló betűk vagy karakterek esetén) a (?[p{L} & (p{Thai} + p{Greek})]) kifejezés használható. - Jelentős fejlesztések a karakterosztályok leképezési mechanizmusában. A lefordított karakterosztályok most kompaktabbak, és gyorsabb leképezést biztosítanak nagy vagy összetett karakterkészletek esetén, bináris keresést alkalmazva a készleten.
- Az API-hoz egy új pcre2_set_optimize() funkció került hozzá, amely az optimalizálások kezelésére szolgál.
- Számos fejlesztés a pcre2_substitute() funkcióban.
- Egyéb fejlesztések és hibajavítások.
Forrás: linux.org.ru
