las - expresiones regulares python pdf
Peor anĂ¡lisis de casos para expresiones regulares (3)
Puede obtener lo que está buscando algo así como usar re.compile
con re.DEBUG
. Vea esta excelente respuesta de la wiki de la Comunidad de características ocultas de Python para obtener una explicación extensa.
¿Hay alguna herramienta que tome una expresión regular particular y devuelva el peor de los casos en términos del número de operaciones requeridas para un cierto número de caracteres con los que se compara la expresión regular?
Entonces, por ejemplo, dado un (f|a)oo.*[ ]baz
, ¿cuántos pasos podría hacer el motor para coincidir con 100 caracteres?
También me interesaría si hay una herramienta que puede tomar un montón de muestras de texto y mostrar las operaciones promedio para cada ejecución.
Me doy cuenta de que esto dependerá mucho del motor utilizado y de la implementación, pero ignoro lo común que es esto. Entonces, si es común para muchos idiomas (lo que hace que mi pregunta sea demasiado vaga) estaría particularmente interesado en Perl y Python.
Tenga en cuenta que depende del motor . Mientras que la teoría regex se basa en la teoría de autómatas rectos, la mayoría de los motores no son traducciones estrictas de esas teorías. Por esta razón, por ejemplo, algunos motores incurren en tiempo exponencial mientras que el procesamiento estricto de NFA no lo haría.
Regexbuddy''s depurador Regexbuddy''s muestra cuántos pasos tomaría el motor para concluir el emparejamiento o no en una muestra determinada. Más información sobre catastróficas retrocesiones y depuración de expresiones regulares .
PD: no es gratis, pero ofrecen una garantía de devolución de dinero de 3 meses.