Sujet : Re: Propriétés Unicode dans les regex Python
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.lang.pythonDate : 09. Nov 2022, 14:13:37
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87iljo2rum.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3 4
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Olivier Miakinen <om+
news@miakinen.net> writes:
Le 09/11/2022 09:33, Stefan Ram a écrit :
Si l'installation de modules supplémentaires n'est
pas envisageable, il existe aussi une possibilité
avec l'installation habituelle de Python sans modules
supplémentaires, mais pas avec les expressions
régulières seules.
import unicodedata
source = "abcdEfgh"
for i, ch in enumerate( source ):
if unicodedata.category( ch )== 'Lu':
print( i, ch )
>
Très intéressant ! Merci pour cela.
<https://docs.python.org/fr/3/library/unicodedata.html>
D'après
https://www.compart.com/en/unicode/category/Lu il y a 1791
caractères Unicode dans la catégorie Lu. Donc si tu veux construire une
expression régulière re en remplaçant "\p{Lu}" par "[.....]" dans une
expression régulière pcre, tu vas aboutir à une expression énorme...
Mais effectivement, si tu n'as pas vraiment besoin d'une expression
régulière et que le test de correspondance peut être fait "à la main",
c'est une solution.
-- Alain.