2009-02-05 11 views
21

Probé algunas herramientas regex como Regulator, Regulazy & RegexBuddy. No hacen lo que quiero y esperan que el usuario conozca expresiones regulares.herramienta de creación de Regex fácil de usar?

Quiero una herramienta para muñecos. Le dices a la herramienta que necesito una expresión regular para algo como "unir cualquier cosa que termine con la palabra 'sí' y contiene al menos una aparición de la frase '/ prueba /'" y crea la expresión regular para ti.

Ingreso mi solicitud en inglés simple o semi llanura o la herramienta tiene todo tipo de selecciones preparadas y elijo entre ellas crear lo que quiero ad hoc.

¿Existe alguna herramienta que esté dirigida a no desarrolladores? No estoy buscando un probador de expresiones regulares.

+0

Esta pregunta está bastante relacionada: http://stackoverflow.com/questions/500839/regular-expression-compiler – Cerebrus

+5

Personalmente, encuentro la idea de intentar programar sin querer aprender ni siquiera la sintaxis más básica del lenguaje que ' La reprogramación en (y las expresiones regulares * son * un idioma) es un concepto espantoso. No saber algo está bien; no * querer * entender algo con lo que trabajarás regularmente es horrible. –

+0

Regexes son un lenguaje de programación. No creo que tenga sentido decir "No sé programación, pero quiero escribir expresiones regulares". Pedir algo para escribir expresiones regulares para usted basado en el inglés tiene tanto sentido como querer escribir algo en código PHP basado en el inglés. –

Respuesta

1

No estoy seguro de que exista tal herramienta, ya que generalmente hacen lo contrario:
Analice una expresión regular y tradúzcala en inglés sencillo.

La solución más cercana a su necesidad sería este C# library, permitiendo expresión regular a programar de una manera semi-legible:

lugar de esto:

const string findGamesPattern = 
@"<div\s*class=""game""\s*id=""(?<gameID>\d+)-game""(?<content>.*?)<!--gameStatus\s*=\s*(?<gameState>\d+)-->"; 

usted tendría, utilizando ReadableRex:

Pattern findGamesPattern = Pattern.With.Literal(@"<div") 
    .WhiteSpace.Repeat.ZeroOrMore 

    .Literal(@"class=""game""").WhiteSpace.Repeat.ZeroOrMore.Literal(@"id=""") 

    .NamedGroup("gameId", Pattern.With.Digit.Repeat.OneOrMore) 

    .Literal(@"-game""") 

    .NamedGroup("content", Pattern.With.Anything.Repeat.Lazy.ZeroOrMore) 

    .Literal(@"<!--gameStatus") 

    .WhiteSpace.Repeat.ZeroOrMore.Literal("=").WhiteSpace.Repeat.ZeroOrMore 

    .NamedGroup("gameState", Pattern.With.Digit.Repeat.OneOrMore) 

    .Literal("-->"); 
+0

¿Realmente ** encuentras esto legible? ¿COBOL es más legible que C, o simplemente más detallado? –

+0

@Jan: err ... verboso. Es una forma pobre de auto-documentación. – VonC

8

txt2re parece realmente bueno. Ingresé "Esta cadena contiene la prueba y termina en" en el cuadro, hizo clic en test y yes, y got a regular expression. No se enfoca en enseñar cómo construir expresiones regulares, pero muestra el código perl para analizar lo que necesita.

El poder real de esta herramienta es su capacidad de reconocer cosas como fechas, URL y etiquetas. El espacio en blanco no parecía funcionar demasiado bien, sin embargo, y no parece manejar ningún tipo de repetición.

+0

+1 Muy bueno. Incluso proporciona código de muestra para implementar la expresión regular en una variedad de idiomas. –

3

Para mí, la mejor herramienta es RegexBuilder es de código abierto y writen en C#, por lo que se puede personalizar tanto como usted quiere;)

disfrutar. ;)

+1

-1: según lo especificado por el autor, él "no está buscando un probador de expresiones regulares" – VonC

+0

el enlace está roto. –

14

He sido un fan de la aplicación Ultrapico's Expresso. Hay una sección de constructor que te ayuda (un poco) a construir fragmentos de la expresión. Más importante aún, explicará una expresión existente (ya sea propia o de la biblioteca de expresiones incorporada) sección por sección.

También incluye una sección de prueba y reemplazo para ver y probar sus expresiones. Por último, generará la expresión formateada para C#, C++ o VB.NET para que sepa exactamente cómo insertar la expresión en su proyecto.

Lo mejor de todo es gratis. He estado usando esta herramienta para ayudar a aprender cómo funcionan realmente las expresiones regulares, especialmente las complejas. No puedo decir que hace que las expresiones de escritura sean a prueba de idiotas, pero seguro me ha hecho las expresiones de aprendizaje más fáciles ...

Esta herramienta apareció en un MSDN Webcast de Zain Naboulsi, y podría valer la pena verla. Espero que esto ayude y ¡buena suerte con tu viaje a Regex!

+0

Expresso es increíble. Lo uso para crear expresiones complejas en Python. Lo único que debe recordar hacer en ese caso es ass? P a sus grupos nombrados. – Soviut

1

También estaba usando Expresso, y me pareció bastante bueno.Lo más importante para mí en estas herramientas es la validación y no tanto ayudas visuales para construir expresiones. Solo necesito una herramienta para recordarme cosas, no diseñarlas para mí.

De todos modos, aquí hay otra gratis, que me gusta bastante. Se llama Rad Software Regular Expression Designer. Espero que esto ayude.

+0

Sí, estoy de acuerdo. Solo intentaba sugerir una alternativa, aunque no directamente útil, que no me haya creado a mí mismo. – Slavo

9

Personalmente me gusta mucho Expresso http://www.ultrapico.com/Expresso.htm La interfaz es bastante limpia - le permite probar funciones de búsqueda y reemplazo, tiene buena ayuda, además genera las expresiones C# si lo desea.

+0

Espera ... para una divulgación completa aquí Jan crea un producto competitivo llamado "RegexBuddy" (ver su propia respuesta más arriba). Le recomendé a Expresso a un colega desarrollador la semana pasada que no sabía nada sobre las expresiones regulares y encontró que el constructor era muy útil. Mientras considero que desea promocionar su propio producto, marcar mi respuesta es muy duro. Podrías haber estado en desacuerdo y robar tu producto de nuevo. – paulecoyote

+0

¡Estoy de acuerdo con Paul! La respuesta de Paul es buena y se ajusta aquí, por lo tanto, no es correcto calificarla y promocionar su producto comercial a través de SO no lo es. Por cierto, realmente me gusta Expresso y lo uso muy a menudo para RegEx complejo '. –

0

Me decidí por RegexBuddy. Tiene un depurador, un visualizador y traduce la expresión regular al inglés sencillo.

0

Bueno, todavía es una gran herramienta en desarrollo, pero puedes probar Textpression en http://www.textpression.com Divulgación: soy el autor.

La impresión de texto permite la creación visual de expresiones regulares con un editor de arrastrar y soltar; sin sintaxis de expresiones regulares para aprender! Al momento de escribir Textpression aún está en Alpha, ¡pero dígame qué piensa!

Cuestiones relacionadas