Je dispose d'un algorithme qui determine la nature d'une chaine de charactere en testant une liste d'expressions regulieres specifiees par l'utilisateur.
Pour faire simple, il s'agit de determiner la nature d'une ligne de log.
L'utilisateur peut donc configurer plusieurs expressions regulieres pour matcher plusieurs types de log (apache, etc.).
Il se trouve helas que c'est une goulot d'etranglement de l'algorithme, car si l'utilisateur specifie un tres grand nombre d'expressions regulieres dans son fichier de configuration, chaque expression est testee sur la chaine de characteres a juger, jusqu'a ce qu'il y ait un matching.
Je souhaite donc faire un algorithme different, qui compilerait toutes les expressions regulieres dans un seul automate deterministe, et testerait la chaine sur cet automate pour faire le matching, ce qui au final serait tres rapide meme avec un grand nombre d'expressions specifiees dans la configuration.
Existe t il deja des scripts, libraries ou autre bout de code qui se rapproche de ce que je cherche a effectuer ?
Est-ce que coder "de 0" un tel algorithme parrait viable en java ? (en sachant qu'il faut au final que cela soit plus rapide que le fait de tester a la suite plusieurs expressions regulieres sur la chaine a analyser)
Partager