tester test regexp google golang java regex re2

test - ¿Existe una biblioteca de expresiones regulares similar a RE2 para Java?



google re2 test (3)

Aquí hay un paquete de autómatas de estado finito para Java: www.brics.dk/automaton ; también vea este artículo . Aquí hay un ejemplo simple:

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

¿Alguien se encontró con la versión de Java de la biblioteca de expresiones regulares de Google RE2 o una biblioteca de Java con capacidades similares y buen rendimiento? El requisito de rendimiento es el tiempo lineal con respecto a la duración de la expresión regular y la longitud del texto de entrada.

Aclaración

La mayoría de las implementaciones de expresiones regulares utilizan un algoritmo de retroceso para coincidir con el texto de entrada y, por lo tanto, son exponenciales en algunas expresiones regulares simples como (.*).(.*).(.*).(.*) . RE2 es una biblioteca de Google que resuelve este problema utilizando un algoritmo que varía linealmente con el tamaño de entrada utilizando los conceptos de la teoría de Autómatas. El consultante quiere saber si existen bibliotecas para Java basadas en este algoritmo.