Dopo oltre sei mesi di sviluppo, è stata rilasciata la versione 10.45 della libreria di espressioni regolari compatibili con PERL PCRE2, scritta in linguaggio C e distribuita sotto licenza BSD. Si tratta di un rilascio relativamente significativo, che include nuove funzionalità, alcune correzioni di bug e alcune modifiche che hanno un impatto limitato sulla compatibilità retroattiva.
La versione 10.45 è il primo rilascio preparato dai nuovi manutentori del progetto, che ringraziano Philip Hazel, il creatore e il manutentore dei progetti PCRE e PCRE2.
Elenco delle modifiche:
- Il progetto di compilazione JIT sljit è ora utilizzato come sottocomponente Git.
- I dati Unicode sono stati aggiornati alla versione 16.
- Il confronto insensibile al maiuscolo/minuscolo delle proprietà Unicode Ll, Lt e Lu è stato modificato per conformarsi a Perl. In precedenza, il pattern /p{Ll}/i considerava solo i caratteri minuscoli (anche se era stata specificata una corrispondenza insensibile al maiuscolo/minuscolo). Questa modifica influisce anche sul confronto insensibile al maiuscolo/minuscolo delle classi POSIX, come ad esempio [:lower:].
- È stata aggiunta una nuova funzione scan_substring. Questo è un nuovo tipo di dichiarazione che confronta il contenuto di un blocco catturato con un sottopattern.
Ad esempio, l'espressione b(w++)(*scan_substring:(1).+rh) trova una parola che contiene una rara sequenza di lettere "rh" nella lingua inglese, non all'inizio. - È stata aggiunta la supporto per classi di caratteri compatibili con UTS#18 (Espressioni Regolari Unicode), tramite una nuova opzione PCRE2_ALT_EXTENDED_CLASS. Per questo, è necessario utilizzare [ come metacarattere nelle classi di caratteri e gli operatori &&, - e ~~ permettono facilmente di eseguire sottrazioni e intersezioni di classi di caratteri.
Ad esempio, per confrontare le lettere tailandesi o greche (ma non le lettere o altri caratteri in questi scritture) si può utilizzare l'espressione [p{L}&&[p{Thai}||p{Greek}]]. - È stata aggiunta la supporto per classi di caratteri estese in stile Perl, utilizzando la sintassi (?[…]). Questo permette anche di esprimere sottrazioni e intersezioni di classi di caratteri, ma utilizzando una sintassi diversa da UTS#18 (Espressioni Regolari Unicode).
Ad esempio, per confrontare le lettere tailandesi o greche (ma non le lettere o altri caratteri in questi scritture) si può utilizzare l'espressione (?[p{L} & (p{Thai} + p{Greek})]). - Significativi miglioramenti nel meccanismo di corrispondenza delle classi di simboli. Le classi di simboli compilate sono ora più compatte e offrono una corrispondenza più rapida per grandi o complessi set di simboli, utilizzando la ricerca binaria all'interno del set.
- È stata aggiunta una nuova funzione pcre2_set_optimize() all'API per gestire le ottimizzazioni.
- Numerosi miglioramenti della funzione pcre2_substitute().
- Altri miglioramenti e correzioni di bug.
Fonte: linux.org.ru
