Linux - Shell - Análisis de expresiones regulares - Múltiples casos


Expresión regular


Visión general

  • Usualmente se usa en sentencias de juicio para verificar si una cadena cumple con un formato determinado
  • Una expresión regular es una composición común de caracteres y metacaracteres.
  • Los caracteres comunes incluyen letras mayúsculas y minúsculas, números, signos de puntuación y algunos otros símbolos.
  • Los metacaracteres se refieren a caracteres especiales con un significado especial en expresiones regulares. Se pueden utilizar para especificar el modo de apariencia de su carácter principal (es decir, el carácter antes del metacarácter) en el objeto de destino

Metacaracteres comunes de expresiones regulares básicas

  • Herramientas compatibles: grep, egrep, sed, awk
Metacaracteres comunes Explicación
\ Caracteres de escape, utilizados para cancelar el significado de símbolos especiales, por ejemplo: \ !, \ n, \ $, etc.
^ La posición inicial de la cadena coincidente, por ejemplo: ^ a, ^ the, ^ #, ^ [az]
PS Final de la posición de coincidencia de la cadena, por ejemplo: Word Katex el error de análisis: después de la posición del grupo esperado '^' AT 2 :, ^ coincide con la línea nula
. Coincide con cualquier carácter excepto \ n, por ejemplo: go.d, g ... d
* Coincide con la subexpresión anterior 0 o más veces, por ejemplo: goo * d, go. * D
[lista] Coincide con un carácter de la lista, por ejemplo: vaya [ola] d, [abc], [az], [a-z0-9], [0-9] coincida con cualquier dígito
[^ lista] Coincidir con cualquier carácter que no esté en la lista, por ejemplo: [^ 0-9], [^ A-20-9], [^ az], coincidir con cualquier letra que no sea minúscula
{norte} Ejemplo: vaya {2} d, '[0-9] {2}' coincide con dos dígitos 'coincide con dos dígitos
{norte,} Coincide con la subexpresión anterior no menos de n veces, por ejemplo: vaya {2,) d, '[0-9] {2,}, coincida con dos o más dígitos
{Nuevo Méjico} Coincide con la subexpresión anterior n am veces, por ejemplo: go {2,3} d, '[0-9] {2,3} coincide con dos o tres dígitos
Nota Egrep, awk usa {n}, {n,}, {n, m} al hacer coincidir, sin agregar "\" antes de "{}"

Metacaracteres extendidos de expresión regular

  • Herramientas compatibles: egerp, awk
Metacarácter Explicación
+ Coincide con la subexpresión anterior más de una vez, por ejemplo: go + d, coincidirá con al menos una o, como dios, bueno, bueno, etc.
? Coincide con la subexpresión anterior 0 o 1 veces, por ejemplo: ir? D, coincidirá con gd o dios
() La cadena entre corchetes como un todo, por ejemplo: g (oo) + d, coincidirá. En general, más de 1 vez, como bueno, bueno, etc.
| Coincidir la cadena de palabras de una manera o, por ejemplo: g (oo | la) d, coincidirá bien o contento

La expresión regular coincide con la dirección de correo electrónico

用户名@: ^ ([a-ZA-Z0-9_\-\.\+]+)@
子域名: ([a-zA-Z0-9_\-\.]+)
·顶级域名(字符串长度一般在2到5) : \. ( [a-zA-Z] {
    
    2,5})$

egrep  '^ ([a-zA-Z0-9\-\.\+]+) @ ( [a-ZA-Zo-9_\-\.]+) \. ([a-zA-Z] {2,5})$'  email.txt
awk '/^ ([a-zA-Z0-9_\-\.\+]+) @ ( [a-zA-Z0-9_\-\.]+)\. ( [a-zA-Z] {2,5})$/{print $o}'  email.txt

Ejemplo

marca

grep "goo*d" xcf.txt 

marca

grep "go.*d" xcf.txt

marca

marca

cat xcf1.txt

grep "[^abc]" xcf1.txt

marca

marca

cat xcf2.txt 

grep "go\{2\}" xcf2.txt

marca

egrep "go+d" xcf2.txt 

egrep "g(oo)+d" xcf2.txt 

egrep "go?d" xcf2.txt 

marca

Supongo que te gusta

Origin blog.csdn.net/weixin_51486343/article/details/111760036
Recomendado
Clasificación