Po ponad pół roku prac, wydano wersję 10.45 biblioteki zgodnej z PERL-owskimi wyrażeniami regularnymi PCRE2, napisaną w języku C i dystrybuowaną na licencji BSD. Jest to stosunkowo duże wydanie, które zawiera nowe funkcje, pewne poprawki błędów oraz kilka zmian, które mają niewielki wpływ na kompatybilność wsteczną.
Wersja 10.45 jest pierwszym wydaniem przygotowanym przez nowych opiekunów projektu, którzy dziękują Filipowi Hazelowi, twórcy i opiekunowi projektów PCRE i PCRE2.
Lista zmian:
- Projekt kompilacji JIT sljit jest teraz używany jako podmoduł Git.
- Zaktualizowano dane Unicode do wersji 16.
- Niezależne od wielkości liter dopasowanie właściwości Unicode Ll, Lt i Lu zostało zmienione, aby odpowiadać Perl. Wcześniej wzór /p{Ll}/i brał pod uwagę tylko znaki małej litery (nawet jeśli ustawiono dopasowanie nieodzielnie od wielkości liter). Ta zmiana wpływa również na nierozróżniające wielkości liter dopasowanie klas POSIX, takich jak np. [:lower:].
- Dodano nową funkcję scan_substring. To nowy typ stwierdzenia, które dopasowuje zawartość chwytanego bloku do podwzoru.
Na przykład, wyrażenie b(w++)(*scan_substring:(1).+rh) znajduje słowo, które zawiera rzadką w języku angielskim sekwencję liter „rh”, która nie znajduje się na początku. - Dodano wsparcie dla klas symboli zgodnych z UTS#18 (Wyrażenia Regularne Unicode), za pomocą nowej opcji PCRE2_ALT_EXTENDED_CLASS. Aby to osiągnąć, należy użyć [ jako symbolu metakarakteru w klasach znaków oraz operatorów &&, — oraz ~~ , co umożliwia łatwe wykonywanie różnic i przecięć klas znaków.
Na przykład, aby dopasować tajskie lub greckie litery (ale nie litery ani inne znaki w tych pismach) można użyć wyrażenia [p{L}&&[p{Thai}||p{Greek}]]. - Dodano wsparcie dla rozszerzonych klas symboli w stylu Perla, używając składni (?[…]). To również pozwala na wyrażanie różnic i przecięć klas symboli, ale z użyciem składni innej niż UTS#18 (Wyrażenia Regularne Unicode).
Na przykład, aby dopasować tajskie lub greckie litery (ale nie litery ani inne znaki w tych pismach) można użyć wyrażenia (?[p{L} & (p{Thai} + p{Greek})]). - Istotne ulepszenia w mechanizmie dopasowywania klas znaków. Składane klasy znaków są teraz bardziej kompaktowe i zapewniają szybsze dopasowanie do dużych lub złożonych zbiorów znaków, wykorzystując wyszukiwanie binarne w zbiorze.
- W API dodano nową funkcję pcre2_set_optimize() do zarządzania optymalizacjami.
- Wiele ulepszeń funkcji pcre2_substitute().
- Inne ulepszenia i poprawki błędów.
Źródło: linux.org.ru
