Uso de expresiones regulares en vim

  

Primero, el comando para usar expresiones regulares

El comando más común para usar expresiones regulares es el comando /(buscar). El formato es el siguiente:

 /expresión regular 

Otro comando útil es: comando (reemplazar), que reemplaza la primera expresión regular entre //con la segunda //La cadena entre.

: s /expresiones regulares /cadenas /opciones de reemplazo 

Puede practicar con el comando /mientras aprende expresiones regulares.

En segundo lugar, los metacaracteres

Los metacaracteres son caracteres con un significado especial. Use metacaracteres para expresar el significado de cualquier carácter, principio de línea, final de línea y algunos caracteres.

Descripción general de Metacharacter
Descripción de Metacharacter. Coincide con cualquier carácter [abc] Coincide con cualquier carácter entre corchetes. Puede usar - para indicar un rango de caracteres, como [a-z0-9] haciendo coincidir las letras minúsculas y los números arábigos. [^ abc] Use el símbolo ^ al comienzo de los corchetes para indicar que cualquier otro carácter que no sea los caracteres entre corchetes coincide. \\ d coincide con los números arábigos, equivalente a [0-9]. \\ D coincide con cualquier carácter que no sean números arábigos, equivalente a [^ 0-9]. \\ x coincide con un número hexadecimal, equivalente a [0-9A-Fa-f]. \\ X coincide con cualquier carácter que no sea un número hexadecimal, equivalente a [^ 0-9A-Fa-f]. \\ w coincide con la palabra letra, que es equivalente a [0-9A-Za-z_]. \\ W Coincide con cualquier carácter que no sea la palabra letra, equivalente a [^ 0-9A-Za-z_]. \\ t coincide con el carácter < TAB > \\ s coincide con los espacios en blanco, equivalente a [\\ t]. \\ S coincide con caracteres que no son espacios en blanco, equivalentes a [^ \\ t].

Además, si desea buscar los caracteres *,., /, etc., debe usar el símbolo \\ al frente, lo que indica que no se trata de un metacarácter, sino de un carácter normal.
Metacharacter Descripción \\ * Coincide con * los caracteres. \\. Partidos. Personajes. \\ /Partidas /personajes. \\\\ coincide \\ caracteres. \\ [coincide con [carácter.

Metacaracteres que representan el número
Metacarácter Descripción * Match 0 - cualquier número \\ + Match 1 - cualquier número \\? Match 0-1 \\ {n, m} Match nm \\ {n} Match n \\ {n,} Coincidir con n-cualquier número \\ {, m} Coincidir con 0-m

Posición que indica el símbolo
Metacarácter Descripción $ Fin de línea de coincidencia ^ Línea de primera línea \\ < Prefijo de palabra de coincidencia \\ > Coincidir con terminaciones de palabras

Caso de uso

 /char \\ s \\ + [A-Za-z _] \\ w *; " Buscar todos los que comiencen con char, seguidos de más de un espacio en blanco, " Último Es un identificador y punto y coma /\\ d \\ d: \\ d \\ d: \\ d \\ d " Busque una cadena de tiempo en el formato 17:37:01: g /^ \\ s * $ /d " eliminar solo Línea en blanco: s /\\ < four \\ > /4 /g " reemplaza todos los cuatros con 4, pero catorce Cuatro no reemplaza a 

Tercero, reemplace la variable

Use los símbolos \\ (y \\) en las expresiones regulares para encerrar expresiones regulares, a las que se puede acceder más adelante usando variables como \\ 1, \\ 2. Los contenidos de (y \\).

Caso de uso

 /\\ (a \\ + \\) [^ a] \\ + \\ 1 " Encuentre el mismo número de cadenas al principio y al final de a, " como aabbbaa , aaaccacaaa, pero no coincide con abbbaa: s /\\ (http: \\ /\\ /[- az \\ ._ ~ \\ +% \\ /] \\ + \\) /< a href = " \\ 1 " > \\ 1 < \\ /a > /" Reemplace la URL con el formato de < a href = " http: //url " > http: //url < /a >: s /\\ (\\ w \\ + \\) \\ s \\ + \\ (\\ w \\ + \\) /\\ 2 \\ t \\ 1 " Modificar data1 data2 a data2 data1 

4. La función

se puede usar en el comando de reemplazo s ///Expresiones de función para escribir contenido de reemplazo en el formato

: s /replace string /\\ = function 

En la función puede usar submatch (1), submatch (2), etc. para referencia \\ 1 , \\ 2, etc. y submatch (0) pueden referirse a todo el contenido de la coincidencia.

Use Case

:% s /\\ < id \\ > /\\ = line (". ") " Reemplace la cadena de identificación de cada línea con el número de línea:% s /^ \\ < \\ w \\ + \\ > /\\ = (línea (". ") - 10). ". ". submatch (1) " Reemplaza las palabras al principio de cada línea con ( Número de línea -10). El formato de la palabra, como la palabra de la línea 11, se reemplaza por 1. word 

V. La diferencia entre la expresión regular y la expresión regular de Perl

La diferencia entre el metacarácter y la sintaxis de Vim Sintaxis de Perl Significado \\ + + 1- Cualquier número \\?? 0-1 \\ {n, m} {n, m} nm \\ (y \\) (y) agrupando

VI, vi ejercicio de expresión regular < Br>

No hable de … el ejemplo muestra todo, como el siguiente párrafo que necesito cambiar a la etiqueta ubb

modo de comando vim, ingrese

:% s /.* src = " ([^ "] *) " [^ >] * > /[img] 1 [/img] /g

Reemplazar con

[img] gu.jpg [/img]

[img] os.jpg [/img]

[i Mg] hu.jpg [/img]

[img] ang.jpg [/img]

Explique lo siguiente:

:

Estado de ejecución del comando

% s

significa buscar y reemplazar

% s /a /b /g

una cadena a buscar (coincidencia regular); b El texto que se va a reemplazar; g significa sustitución de búsqueda global (de lo contrario, solo se encontró el primer resultado)

([^ "] *)

significa N caracteres no citados; Fuera () significa que el reemplazo se usa más adelante (referenciado con 1, …, 9, etc.)

[/img]

Copyright © Conocimiento de Windows All Rights Reserved