recursive multiple files regex text-editor

regex - multiple - sed recursive



Búsqueda en línea regular multilínea y reemplazar! (14)

He golpeado una pared ¿Alguien conoce un buen editor de texto que tenga búsquedas y reemplazos como Notepad ++ pero que también pueda hacer búsquedas y reemplazar expresiones regulares de múltiples líneas? Básicamente, estoy tratando de encontrar algo que pueda coincidir con una expresión regular como:

buscar oldlog/(.*/n/s+([/r/n.]*)/);
reemplazar newlog/(/1/)

¿Algunas ideas?


El editor de Zeus puede hacer búsquedas multilínea y reemplazar.


Estoy bastante seguro de que Notepad ++ puede hacerlo ahora a través del complemento TextFX (que se incluye de forma predeterminada). Pulsa Control-R en Notepad ++ y juega.


La última versión de www.ultraedit.com tiene multilínea de búsqueda y reemplazo con soporte de expresiones regulares.

O si estás de acuerdo con usar una herramienta de expresión regular más especializada para esto, hay Regex Hero . Tiene el beneficio secundario de poder hacer todo sobre la marcha. En otras palabras, no tiene que hacer clic en un botón para probar su expresión regular porque se prueba automáticamente después de cada pulsación de tecla.

Personalmente, usaría UltraEdit si estoy buscando reemplazar el texto en varios archivos. De esa manera, simplemente puedo seleccionar los archivos para reemplazar como un lote y hacer clic en Reemplazar. Pero si estoy trabajando con un solo archivo de texto y necesito escribir una expresión regular más compleja, lo pegaré en Regex Hero y trabajaré allí. Esto se debe a que Regex Hero puede ahorrar tiempo cuando ve que todo sucede en tiempo real.


Mi recomendación personal es UltraEdit de IDM Computing ( www.ultraedit.com ): puede hacer expresiones regulares (buscar y reemplazar) con sintaxis de Perl, Unix y UltraEdit. La concordancia multilínea es una de las capacidades en el modo de expresión regular de Perl.

También tiene otras capacidades de búsqueda agradables (p. Ej., Búsqueda en un rango de columnas de caracteres específico, búsqueda en múltiples archivos, historial de búsqueda, favoritos de búsqueda, etc.)

texto alt http://www.ultraedit.com/assets/images/new_features/ue_1500/searchincolumn.png


Notepad ++ ahora puede manejar expresiones regulares de varias líneas (solo actualice a la versión más reciente; la función se introdujo alrededor de marzo de 2012).

Necesitaba eliminar todas las declaraciones onmouseout y onmouseover de un documento HTML y necesitaba crear una coincidencia multilínea no codiciosa.

onmouseover=.?/s*".*?"

Asegúrate de revisar el

[ ] . matches newline casilla de verificación si desea utilizar la capacidad de coincidencia de varias líneas.


Podrías usar Visual Studio. Descarga Express gratis si no tienes una copia.

La expresión regular de VS no es estándar, por lo que tendría que usar / n: b + [/ r / n] en su lugar.


Puedes usar una versión reciente de Notepad ++ (la mía es 6.2.2).

No es necesario usar la opción ". Coincidir con nueva línea" como se sugiere en otra respuesta. En su lugar, use la expresión regular adecuada con ^ para "comienzo de línea" y $ para "final de línea". Luego use / r / n después de $ para una "nueva línea" en un archivo dos (o simplemente / n en un archivo unix, ya que el retorno de carro se usa principalmente para el archivo de texto dos / windows):

Ej .: para eliminar todas las líneas que comienzan con las etiquetas OBJE después de una línea que comienza con una etiqueta UID (de un archivo gedcom - usado en genealogía), usé la siguiente expresión regular de búsqueda:

^UID (.*)$/r/n^(OBJE (.*)$/r/n)+

Y el siguiente valor de reemplazo:

UID /1/r/n

Esto es coincidir líneas como esta:

UID 4FBB852FB485B2A64DE276675D57A1BA OBJE @M4@ OBJE @M3@ OBJE @M2@ OBJE @M1@

y la salida del reemplazo es

UID 4FBB852FB485B2A64DE276675D57A1BA

Se han reemplazado 550 instancias en menos de 1 seg. Notepad ++ es realmente eficiente!

De lo contrario, para validar una expresión regular, me gusta usar .Net RegEx Tester ( http://regexhero.net/tester/ ). Es realmente genial escribir y probar al vuelo un Reg Ex ...

PS .: Además, puede usar [/s/S] en su expresión regular para hacer coincidir cualquier carácter, incluidas las nuevas líneas. Entonces, si busca cualquier bloque de texto de "multilínea" que comience con "xxx" y termine con "abc", el siguiente Regex estará bien: ^xxx[/s/S]*?abc$ where "*?" es emparejar lo menos posible entre xxx y abc !!!


Uso Eclipse , que es gratuito y que ya puede tener si es un desarrollador. ''/ R'' actúa como un delimitador de línea independiente de la plataforma. Aquí hay un ejemplo de búsqueda multilínea:

buscar:

/ bibitem. (/ R. )? / R? {([^ {] )} $ / R ^ ([^ /]. [^}] $ ​​/ R. $ / R. )

y reemplazar:

/ defcitealias {$ 2} {$ 3}


Uso Notepad ++ todo el tiempo, pero Regex siempre me ha faltado un poco.

Sublime Text es lo que quieres.



EditPad Pro tiene mejores capacidades de expresión regular que cualquier otro editor que haya usado.

Además, sospecho que tiene un error en su expresión regular: [/r/n.] Coincidirá solo con los retornos de carro, las nuevas líneas y las paradas completas. Si está intentando hacer coincidir cualquier carácter (es decir, "operador de punto más CR y LF), intente [/s/S] lugar.


EditPlus hace un buen trabajo en la búsqueda / reemplazo usando expresiones regulares (incluyendo multilínea)


TextPad tiene buenas capacidades de búsqueda y reemplazo de Regex; Lo he usado por un tiempo y estoy muy feliz con él.

Captura de pantalla de TextPad http://i31.tinypic.com/2bb22q.png

De las Features :

Potente motor de búsqueda / reemplazo que usa expresiones regulares de estilo UNIX, con el poder de las macros de edición. Se pueden buscar conjuntos de archivos en un árbol de directorios y se puede reemplazar el texto en todos los documentos abiertos a la vez.

Para obtener más opciones de las que podría necesitar, consulte " Alternativas de Notepad ++ " en AlternativeTo.net .


ED for windows tiene dos versiones de expresiones regulares, tres tipos de cortar y pegar (selección, líneas o bloques, Y puede cambiar de una a la siguiente (a diferencia de la edición ultra, que es bastante pesada) con solo un clic del ratón mientras está resaltado: no es necesario desplegar un menú. La velocidad de realizar el trabajo es increíble, como leer en un Kindle, no tiene que pensar en ello.