Arrière-plan: Je développe une syntaxe personnalisée de type regex pour les noms de fichiers d'URL. Il fonctionne comme ceci:Analyse syntaxique d'une syntaxe de génération de chaîne personnalisée
- utilisateur écrit un motif, quelque chose comme
"[a-z][0-9]{0,2}"
, et il passe en entrée - Il est analysé par le programme et traduit dans l'ensemble des permutations, il représente par exemple
'a'
,'a0'
,'a00'
...'z99'
Ces modèles varient en complexité, essentiellement tout ce qui pourrait apparaître dans un nom de fichier URL doit être hébergé. La langue est Java ou PHP, mais des exemples dans n'importe quelle langue ou aide abstraite/conceptuelle sont plus que bienvenus.
Mes questions sont les suivantes:
- Où commencer par la mise en œuvre d'un "analyseur" pour le ci-dessus
et moins important,
- Comment traduire par programme les modèles complexes analysés en chaînes
Pouvez-vous préciser pourquoi regex ne convient pas à ce problème? – GrayWizardx
C'est un problème très intéressant et difficile. C'était un sujet d'un Quiz Ruby: http://rubyquiz.com/quiz143.html. Une caractéristique de Ruby que j'aime est celle par exemple. ('a' .. 'zzzzz'). chaque {| x | met x} imprime toutes les combinaisons de lettres minuscules de taille 1 à 5. – mykhal
@GrayWizardx Comment utiliseriez-vous une regex pour la partie de permutation de l'algorithme? – axada