Expresión regular: Un memorando

Aunque he utilizado RE durante mucho tiempo, en vim, grep, curiosear, perl, etc, me di cuenta de que todavía tengo los puntos ciegos en relación con RE. Así que la lista de algunos de ellos aquí por mi propio bien, por si acaso es posible que tenga problemas similares también.

1. BRE y ERE

POSIX.2 especifican «RE Básico» y «RE ampliado». En grep, BRE y ERE tienen la misma capacidad, la única diferencia es si usted necesita para escapar de ciertos metacaracteres

BRE meta-caracteres:. [] ^ $ . * ERE />
-l: los nombres de archivo que coinciden
-L: nombres de archivos que no coinciden
-o: parte solo juego, no toda la línea

el control prefijo de salida:
-n: número de línea
-b: coincidir desplazamiento

Vim generalmente utiliza la sintaxis BRE. Es por eso que son tan «» en vim RE.

2. codicioso, no expansivo />
POSIX.2 sólo admiten cuantificador «codiciosos». El apoyo de grep con switch «-P» no siempre funciona
Vim apoyan no expansivo, de la siguiente manera:.

cuantificador
Descripción
{-}
partidos 0 o más de los átomos anterior, el menor número posible
{-n, m}
partidos 1 o más de los caracteres precedentes …
{-n,}
partidos en el arriendo o más de los caracteres precedentes …
{-, m}
partidos 1 o más de los caracteres precedentes …
donde n y m son positivos enteros (> 0)

3. Linux línea de comandos «glob»
globbing no se vuelve. Se utiliza «caracteres comodín» (? *) Para expandir los nombres de ruta. «?» es uno carbón desconocido al «*» número no especificado de caracteres desconocidos. «[Abc]» funciona como «expresión de corchetes» en POSIX RE.

4. Si usted está haciendo la programación seria para RE, utilizar el apoyo sintaxis compatible con Perl. Es el más potente motor de RE. Usted puede encontrar apoyo como las de Perl en Python, PCRE, JRegex, etc

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *