Je voudrais analyser une liste d'expressions régulières pour calculer la probabilité de chacun pour trouver une allumette dans un certain texte/string ...en utilisant pyparsing pour analyser une liste des expressions rationnelles (littéralement)
Par exemple. trouver '[AB]
' dans une chaîne de longueur 1 devrait être quelque chose autour de 1/13 (en considérant seulement les lettres captiales).
Existe-t-il un analyseur d'expressions régulières générique, qui renvoie les positions/alternatives individuelles? Je pense à obtenir une liste des postes de retour (« [AB].A{2}
« donnerait » [['A','B'],'.',['AA']
»)
Le problème est l'analyse syntaxique des expressions régulières avec pyparsing. Les expressions régulières simples ne sont pas un problème, mais quand il s'agit de "alternatives" et répétitions, je suis perdu: J'ai du mal à analyser les expressions imbriquées comme '((A[AB])|(AB))
'.
Des pensées?
J'ai écrit un Code Golf sur ce sujet il y a quelque temps (http://stackoverflow.com/questions/3523323/code-golf-regex-parser). Étant le code de golf, la plupart des réponses seront un peu difficiles à déchiffrer. Mais le même problème s'est présenté, et les gens beaucoup plus intelligents que je ne serai jamais trouvé un moyen. :-) –
J'ai proposé une réponse à votre question de vraisemblance, et maintenant je vois que vous avez une deuxième question sur l'existence d'un analyseur de regex. Il doit y avoir au moins un tel parseur, celui que Python utilise. Vous obtiendrez probablement votre réponse d'un expert de Python si vous étiquetez clairement votre question comme concernant les internes de Python. – Narveson
Avez-vous regardé cet exemple sur le wiki pyparsing? http://pyparsing.wikispaces.com/file/view/invRegex.py – PaulMcG