Metacaracteres Regex de Python

Los metacaracteres se consideran los componentes básicos de las expresiones regulares. Las expresiones regulares son patrones que se utilizan para hacer coincidir las combinaciones de caracteres en las strings. Los metacaracteres tienen un significado especial en la búsqueda de patrones y se utilizan principalmente para definir los criterios de búsqueda y cualquier manipulación de texto.

Algunos de los metacaracteres más utilizados junto con sus usos son los siguientes:

Metapersonaje     Descripción              Ejemplo          
         \d números enteros (0-9) (un solo dígito)  \d = 7, \d\d=77
         \w caracteres alfanuméricos

\w\w\w\w = friki

\w\w\w =! adicto

          * 0 o más caracteres s* = _,s,ss,sss,ssss…..
          + 1 o más caracteres s+ = s,ss,sss,ssss…..
          ?   0 o 1 caracter ¿s? = _ o s
        {metro} ocurre “m” veces sd{3} = sddd
       {Minnesota} min “m” y max “n” veces sd{2,3}=sdd o sddd
        \W   simbolos  \W = %
[az] o [0-9] conjunto de caracteres

geek[sy] = geek

geek[sy] != geek

Las expresiones regulares se pueden construir mediante metacaracteres, y los patrones se pueden procesar usando una biblioteca en Python para expresiones regulares conocida como «re».

import re  # used to import regular expressions

La biblioteca incorporada se puede utilizar para compilar patrones, buscar patrones , etc. 

Ejemplo: en el siguiente código, generaremos todos los patrones basados ​​en la expresión regular dada

Python3

import re
  
  
'''
Meta characters - 
* - 0 or more
+ - 1 or more
? - 0 or 1
{m} - m times
{m,n} - min m and max n
'''
  
test_phrase = 'sddsd..sssddd...sdddsddd...dsds...dsssss...sdddd'
test_patterns = [r'sd*',        # s followed by zero or more d's
                 r'sd+',          # s followed by one or more d's
                 r'sd?',          # s followed by zero or one d's
                 r'sd{3}',        # s followed by three d's
                 r'sd{2,3}',      # s followed by two to three d's
                 ]
  
  
def multi_re_find(test_patterns, test_phrase):
    for pattern in test_patterns:
        compiledPattern = re.compile(pattern)
        print('finding {} in test_phrase'.format(pattern))
        print(re.findall(compiledPattern, test_phrase))
  
  
multi_re_find(test_patterns, test_phrase)

Producción:

encontrar sd* en test_phrase
[‘sdd’, ‘sd’, ‘s’, ‘s’, ‘sddd’, ‘sddd’, ‘sddd’, ‘sd’, ‘s’, ‘s’, ‘s’, ‘s’, ‘s’, ‘s’, ‘sdddd’]
encontrando sd+ en test_phrase
[‘sdd’, ‘sd’, ‘sddd’, ‘sddd’, ‘sddd’, ‘sd’, ‘sdddd’]
encontrando ¿Dakota del Sur? en frase_de_prueba
[‘sd’, ‘sd’, ‘s’, ‘s’, ‘sd’, ‘sd’, ‘sd’, ‘sd’, ‘s’, ‘s’, ‘s’, ‘s’ , ‘s’, ‘s’, ‘sd’]
encontrando sd{3} en frase_de_prueba
[‘sddd’, ‘sddd’, ‘sddd’, ‘sddd’]
encontrando sd{2,3} en frase_de_prueba
[‘sdd’ , ‘sddd’, ‘sddd’, ‘sddd’, ‘sddd’]

Publicación traducida automáticamente

Artículo escrito por manavgoswami001 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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