2009-05-26 23 views
36

¿Alguien tiene un buen enlace a un sitio web o una buena herramienta para crear expresiones regulares en lugar de romperse la cabeza para crear una. La herramienta debería ser capaz de crear expresiones regulares simplemente seleccionando algún tipo de texto de patrón. Por ejemplo, si quiero que se valide un número de teléfono, debería poder ingresar (000) - (111) - (1111) o 000-000-0000 o 000-0000000 y la herramienta shold generará expresiones regulares automáticamente.Cualquier buen software de creación de expresiones regulares o herramientas en línea para crear expresiones regulares

Respuesta

40

Aquí es una buena herramienta de expresiones regulares en línea: www.gskinner.com/RegExr/

+5

Me resulta muy limitante. Y es horrible, ya que te roba el foco y no puedes alejarte de él. ¿Alguien hasta codificando un reemplazo? –

+0

Lo uso también: D – TheCrazyProfessor

5

Expresso tiene un constructor de GUI regex.
Pero te recomiendo que dediques un tiempo y aprendas expresiones regulares; podrás crear expresiones mucho más rápido que con un helper-builder-GUI

Editar: Pero aún así no leerá tu mente. Necesita construir la expresión regular pieza por pieza ... en eso quiero 3 dígitos y luego - y así sucesivamente ... No puede adivinar que necesita un número de teléfono dado una cadena coincidente

+0

realidad soy un desarrollador de expresión regular sazonado. Lo que me gustaría hacer es proporcionar esto, en cierta medida, a algunos usuarios. Tenemos un conjunto de datos ENORME y se beneficiarán de tener descubrimientos "grep-like" en él, pero no están tan inclinados técnicamente, ¿no piensan en eso? –

+0

@Jorge - Regular Expression es una DSL para buscar texto ... Tal vez puedas construir tu propio idioma encima. Así que examine qué tipos de búsquedas son comunes entre sus usuarios finales, luego ayúdelos a través de una aplicación que genere el registro correcto. p.ej. si realizan rutinariamente '¡muéstrame todas las líneas que comienzan con ERROR!' - podría darles una aplicación que tenga un menú/comando 'Líneas de búsqueda que comiencen con ...', pídales que ingresen la subcadena, p. ¡ERROR! y haz clic en Buscar. Detrás de escena, ejecuta /^ERROR!(.*)/ e imprime el primer grupo. Ajustar todas las búsquedas de uso común de esta manera. – Gishu

+0

El problema que veo con ese enfoque es que estás construyendo un idioma sobre otro idioma y la posibilidad de que te jodan es muy alta. –

8

Creando expresiones regulares sin tener cualquier pista sobre ellos no funciona. Pero puedes hacer uso del software que te ayuda a crearlos. Escuché que regexbuddy debería ser bastante bueno.

EDITAR

Razones por la creación de expresiones regulares de cadenas arbitrarias no pueden trabajar se pueden encontrar en la respuesta a this question

+1

¡Soy fan de Regex Buddy! ¡Bastante barato, y bastante útil! – geoffc

+1

No soy. Admitiré que solo he visto un ejemplo de su uso, pero la expresión regular que generó fue francamente horrorosa, al menos el doble que las soluciones que la gente ideó. RegexBuddy puede ser barato, pero aprender a usar expresiones regulares es gratis, y el conocimiento no tiene precio. –

+0

Eso es absolutamente correcto, las expresiones regulares autogeneradas se deben considerar como cualquier código autogenerado: desarrollo económico, mal tiempo de ejecución. – soulmerge

1

El cerebro humano va a crear expresiones regulares mejores y más fácil de leer que cualquier RegexBuddy. Independientemente de la cantidad de una pieza de software puede ayudarle a desarrollar expresiones regulares más rápidas, hay varios problemas que tendrá con estas expresiones regulares:

  1. Probablemente se parecen bastante horrible, y hacer cumplir la idea de expresiones regulares como contra escritura solamente.
  2. Probablemente sean ineficientes y usen soluciones extrañas/innecesarias.
  3. No entenderá qué está pasando en la expresión regular, lo que significa que será un programador de culto de carga.

Al final, el aprendizaje de expresiones regulares lo convertirá en un mejor programador, podrá leer el código de otras personas y comprender lo que hace, además de poder escribir sus propias expresiones regulares sobre la marcha, que generalmente será más rápido que detener el flujo de trabajo de codificación, recurrir a algún programa externo, crear una lista de casos de prueba que deben aprobarse o fallar, y luego copiar y pegar la expresión regular generada resultante en su código sin saber lo que hace.

+1

¿Alguna razón para revocar mi consejo, que ha sido repetido en un sentido más débil en la mitad de las respuestas publicadas?¿O simplemente enojado porque no recomendaré una solución rápida para la falta de conocimiento de expresiones regulares? –

+1

+1 por tener perfecto sentido. – Josh

+2

Solo decir "Usa tu cerebro" no es una respuesta. –

3

También soy un fan de RegexBuddy, pero si trabaja con un presupuesto ajustado también puede usar la utilidad de código abierto (y gratuita) llamada Kodos. Originalmente fue diseñado para la depuración y creación de expresiones regulares para Python, pero puede usarlo para validar cualquier expresión regular.

Por supuesto, seguirá dependiendo de que realmente sepas cómo construir la expresión regular, pero al menos puedes usarla para validar o probar lo que tienes.

+0

¿Existe alguna regla que indique que los usuarios de SO de un representante determinado no pueden agregar hipervínculos? Si es así, eso es ridículo. De todos modos, agregué el enlace para ti. Hay un botón que tiene un globo y una flecha. Haga clic en eso e ingrese la URL para enlazar. Le dará algo como "[] [1]" y una nota al pie de página "[1] URL". Coloque el texto del enlace entre el primero "[]". Puede ver su publicación ahora y ver exactamente cómo se hace. –

+0

Sí, debe haberlo. Tenía el enlace allí antes, pero cuando traté de enviarlo, un mensaje emergente me dijo que los nuevos usuarios no pueden tener hipervínculos, así que lo eliminé nuevamente. ¡Gracias por la edición! –

3

The Regex Coach me ha ayudado mucho - que soporta casi todo las complejidades de expresiones regulares; ves en tiempo real cómo operan tus modificaciones en la cadena; también tiene una representación visual del árbol de análisis sintáctico.

1

Me gusta el resaltado y la funcionalidad adicional en RegexPal. Es una herramienta web gratuita que tiene una referencia rápida de fácil acceso. Incluso notará en la parte inferior que recomiendan RegexBuddy para obtener más potencia, pero aún encontrará la funcionalidad RegexBuddy en la aplicación web.

3

Si está utilizando Eclipse, entonces Regex Util de Sergey Evdokimov es un placer. Se encuentra justo allí en su IDE, por lo que no lo perderá, y proporciona información instantánea sobre las coincidencias. Luego hace todo el escape/unescaping para usted mientras lo copia y lo pega de un lado a otro en su código.

+0

HI Instalé el complemento para INtelliJ pero no puedo encontrar el camino para invocarlo. Cómo invocar este complemento en INtellij, ¿tiene alguna idea? – Anirudh

37

Yo uso Rubular. No es solo para Ruby.

+2

Bueno, ¡por fin! – chugh97

+2

Marcado como favorito este. Necesitaba una expresión regular simple y tengo poco conocimiento, por no decir ninguno. Terminé en unos minutos con este editor y sus "referencias rápidas". – Jla

+0

Gracias por el enlace - finalmente me sentí como algo RegEx'ie funcionó para mí;) – Chau

4

Tengo que dar refiddle.com una oportunidad. Sus pruebas de corpus hacen que sea muy fácil diseñar patrones para un conjunto conocido de datos. Puedes probar las expresiones Ruby, .NET y JavaScript.

3

Yo prefiero usar www.txt2re.com

Tienen algunos buenos instrumentos para la creación de sintaxis de expresiones regulares para muchos idiomas diferentes.

espero que ayude a alguien :)

Cuestiones relacionadas