36 votes

Une bibliothèque d'expressions régulières de type RE2 pour Java?

Quelqu'un a trouver la version Java de Google bibliothèque d'expression régulière RE2 ou une bibliothèque java avec des fonctionnalités similaires et de bonnes performances? L'exigence de performance est le temps linéaire de la durée de l'expression régulière et la saisie de la longueur du texte.

Précisions

La plupart d'expression régulière de la mise en œuvre utilisation d'un algorithme de backtracking pour correspondre à la saisie de texte et sont donc exponentielle sur certaines expressions régulières simples comme (.*).(.*).(.*).(.*). RE2 est une bibliothèque de google qui permet de résoudre ce problème en utilisant un algorithme qui varie linéairement avec la taille de l'image à l'aide des concepts de la théorie des Automates. L'interlocuteur veut savoir si il existe des bibliothèques pour Java qui sont basés sur cet algorithme.

5voto

denim2x Points 21

Il existe un paquet d'automates à états finis pour Java ici: www.brics.dk/automaton ; voir aussi cet article . Voici un exemple simple:

 RegExp r = new RegExp("ab(c|d)*");
Automaton a = r.toAutomaton();
String s = "abcccdc";
System.out.println("Match: " + a.run(s)); // prints: true
 

3voto

user889742 Points 71

La recherche Google a donné ceci.

https://github.com/logentries/re2-java

Comme Peter Boughton l’a écrit plus haut, "je ne suis pas sûr qu’elle soit achevée / utilisable pour le moment", et il indique qu’il ne prend en charge que Linux 64 bits.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X