PCRE2 10.45

След повече от половин година разработка, излезе версия 10.45 на библиотеката с PERL-съвместими регулярни изрази PCRE2, написана на езика C и разпространявана под лиценз BSD. Това е сравнително голямо издание, което включва нови функции, някои отстранявания на грешки и няколко промени, които имат малко влияние върху обратната съвместимост.

Версия 10.45 е първото издание, подготвено от новите поддръжници на проекта, които благодарят на Филип Хейзъл, създателя и поддържащ проекта PCRE и PCRE2.

Списък с промени:

  • Проектът JIT-компилация sljit сега се използва като подмодул на Git.
  • Актуализирани данни на Юникод до версия 16.
  • Нечувствителното на регистър съпоставяне на свойствата на Юникод Ll, Lt и Lu беше променено, за да съвпадне с Perl. По-рано шаблонът /p{Ll}/i отчита само символи с малки букви (дори когато е указано съпоставяне без чувствителност към регистър). Тази промяна също влияе на нечувствителното на регистър съпоставяне на POSIX класове, като например [:lower:].
  • Добавена е нова функция scan_substring. Това е нов тип изявление, което съпоставя съдържанието на захванатия блок с подшаблон.
    Например, изразът b(w++)(*scan_substring:(1).+rh) намира дума, съдържаща рядката в английския език последователност от букви „rh“, която не е в самото начало.
  • Добавена е поддръжка на класове символи, съвместими с UTS#18 (Уникодни регулярни изрази), с новата опция PCRE2_ALT_EXTENDED_CLASS. За целта трябва да използвате [ като метасимвол в символните класове и оператори &&, — и ~~ , което позволява лесно извършване на изваждане и сечение на класове символи.
    Например, за съпоставяне на тайски или гръцки букви (но не букви или други символи в тези писмености) може да се използва израза [p{L}&&[p{Thai}||p{Greek}]].
  • Добавена е поддръжка на разширени класове символи в стил Perl, използвайки синтаксис (?[…]). Това също позволява да се изразяват извлечения и сечения на класове символи, но с различен от UTS#18 (Уникодни регулярни изрази) синтаксис.
    Например, за съпоставяне на тайски или гръцки букви (но не букви или други символи в тези писмености) може да се използва израза (?[p{L} & (p{Thai} + p{Greek})]).
  • Значителни подобрения в механизма за съпоставяне на класове символи. Компилираните класове символи сега са по-компактни и осигуряват по-бързо съпоставяне за големи или сложни набори от символи, използвайки двоично търсене в набора.
  • В API е добавена нова функция pcre2_set_optimize() за управление на оптимизациите.
  • Много подобрения на функцията pcre2_substitute().
  • Други подобрения и корекции на грешки.

Източник: linux.org.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster