J'essaye de créer une fonction de Python qui peut prendre une description anglaise simple d'une expression régulière et renvoyer l'expression régulière à l'appelant. Actuellement, je pense à la description au format YAML. Donc, nous pouvons stocker la description comme une variable de chaîne brute, qui est transmise à cette autre fonction et la sortie de cette fonction est ensuite passée au module 're'. Voici un exemple assez simpliste:est-il besoin d'une manière plus déclarative d'exprimer des expressions régulières? :)
# a(b|c)d+e*
re1 = """
- literal: 'a'
- one_of: 'b,c'
- one_or_more_of: 'd'
- zero_or_more_of: 'e'
"""
myre = re.compile(getRegex(re1))
myre.search(...)
etc.
Quelqu'un pense que quelque chose de ce genre serait d'une utilisation plus large? Connaissez-vous des paquets déjà existants qui peuvent le faire? Quelles sont les limites que vous voyez à cette approche? Quelqu'un pense-t-il, ayant la chaîne déclarative dans le code, le rendrait plus maintenable?
JSON ou XML peut-être? DTD ou XSD peut également décrire une structure de données bien. – codymanix
Donc, au lieu d'une expression rationnelle complexe prenant une ligne entière, il faudra une page entière :) –
Les gens qui connaissent des expressions régulières sont à l'aise avec elle, mais pour tout le monde, il semble que l'alphabet a vomi. Cela pourrait être un problème, mais je ne suis pas sûr. Après tout, vous pouvez dire la même chose des langages de programmation pour les personnes qui programment vs perople qui ne le font pas. Il pourrait être agréable de le faire avec des objets et des fonctions de chaînes de caractères, mais je ne suis pas sûr de ce que la meilleure façon de mettre en œuvre ce serait. +1 pour l'innovation tout de même. – psicopoo