2011-06-06 17 views
5

Tengo un archivo que tiene la forma general comocadena Delete en VIM

number,number,string 

y quiero eliminar tanto los números de cada línea y extraer sólo la cadena. ¿Cuál sería la expresión regular?

Respuesta

12

Se puede utilizar:

:s/^[0-9]*,[0-9]*,// 

Para todo el archivo, eso es:

:%s/^[0-9]*,[0-9]*,// 
+0

gracias .. !! sigo olvidando que '^' ... gracias amigo ... :) –

+0

@Prasanth Madhavan Acepta la respuesta si te ayuda a expresar tu agradecimiento :) –

+2

Me gustaría agregar que puedes usar '\ d' en lugar de '[0-9]' si lo prefiere. Hay bastantes atajos como este que pueden hacer que las expresiones regulares sean más fáciles de leer, especialmente en el mundo regex loco de vim. Puede obtener una lista completa de aquellos que vim admite justo debajo de ': help/\ i'. –

2

Una buena expresión regular puede ser:

/^\(\s*[+-]*[[:digit:]]*\.*[[:digit:]]\+,\s*\)\{2}/ 

Esto corresponderá con números, incluyendo una signo opcional y un punto decimal opcional (suponiendo que usa . en su localidad) seguido de una coma y espacios en blanco opcionales dos veces al comienzo de la línea.

de uso:

:%s/^\(\s*[+-]*[[:digit:]]*\.*[[:digit:]]\+,\s*\)\{2}// 

Añadir dígitos hexadecimales ([[:xdigit:]]) al gusto.