Bibliothèque C # pour la correspondance de motif lisible par l’homme?

.net c# expression-trees regex

Question

Est-ce que quelqu'un connaît une bibliothèque C # pour faire correspondre des modèles lisibles par l'homme? Semblable à regex, mais plus convivial?

Étant donné une valeur de chaîne, je veux pouvoir la faire correspondre à un modèle du type:

(this AND that) OR "theother"

où "ceci" et "cela" sont des expressions LIKE et "theother" est une correspondance exacte due aux guillemets.

UPDATE: Ok, juste pour être un peu plus clair. La raison pour laquelle je veux cela est de permettre aux utilisateurs finaux d'entrer dans leurs propres modèles, en tant que valeurs de chaîne. Je recherche donc quelque chose qui fonctionne de la même manière que regex, mais utilise des chaînes lisibles par l'homme que mes utilisateurs comprendront facilement.

(this AND that) OR "theother"

Réponse acceptée

Après de nombreuses recherches, je n’étais pas en mesure de trouver exactement ce que je recherchais, mais j’avais besoin que quelque chose fonctionne rapidement, et comme le système que j’utilise possède déjà les DLL appropriées, j’ai fini par utiliser Lucene.NET pour créer un index temporaire contenant un seul document avec les champs pertinents que je dois rechercher ajoutés. Je peux alors faire le type de requête que je suis contre et vérifier s'il y a des correspondances. En utilisant la classe RAMDirectory, j'ai pu créer l'index en mémoire et en disposer après la recherche. Ainsi, aucun fichier d'index ne doit être écrit sur le disque.

Je suis sûr qu'il existe probablement des moyens moins intensifs pour y parvenir, mais comme je l'ai dit, c'est le meilleur que je pourrais trouver avec le temps dont je disposais.

Merci à tous pour leurs suggestions, et j'aimerais toujours savoir s'il y a une meilleure façon de le faire?


Réponse populaire

J'ai lu cet article il y a quelque temps. Cela ressemble à ce que vous demandez.

Expressions régulières lisibles

Après examen de votre demande, vous devrez ensuite créer un mappage de la terminologie "conviviale" et de l'interface fluide de cette bibliothèque.

C'est une couche supplémentaire d'abstraction, c'est vrai, mais personnellement , je préférerais lire un «stade intermédiaire» fluide plutôt qu'un regex généré automatiquement




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi