Regex Lookbehind se usa como una afirmación en las expresiones regulares de Python (re) para determinar el éxito o el fracaso si el patrón está detrás, es decir, a la derecha de la posición actual del analizador. No coinciden con nada. Por lo tanto, Regex Lookbehind y lookahead se denominan aserciones de ancho cero.
Sintaxis:
# Positive lookbehind (?<=<lookbehind_regex>) # Positive lookahead (?=<lookahead_regex>)
En esta publicación hablaremos sobre regex lookbehind.
Ejemplo 1:
Python3
# importing regex import re # Regex Lookbehind example example = re.search(r'(?<=geeks)\w', 'geeksforgeeks') print(example.group()) print("Pattern found from index", example.start(), example.end())
Producción:
f Pattern found from index 5 6
La afirmación regex lookbehind (?<=geeks) especifica que lo que precede a cualquier carácter de palabra (‘\w’) debe ser una string ‘geeks’. En este caso, es el carácter ‘f’ antes del cual aparece la string ‘geeks’.
Ejemplo 2:
Python3
# importing regex import re # Regex Lookbehind example example = re.search(r'(?<=geeks)\d', 'geeksforgeeks') print(example)
Producción:
None
En el ejemplo anterior, el resultado es Ninguno porque no hay un dígito decimal precedido por la string ‘geeks’.
La parte de Lookbehind no forma parte de la string de búsqueda. Son importantes cuando no desea que la salida devuelva la parte de búsqueda posterior presente en la string de búsqueda, pero desea usarla para hacer coincidir el patrón que está precedido por una sección en particular. El siguiente ejemplo lo aclarará:
Ejemplo 3:
Python3
import re # Using lookbehind example1 = re.search(r'(?<=[a-z])\d', "geeks12") print(example1.group()) # Without using lookbehind example2 = re.search(r'([a-z])\d', "geeks12") print(example2.group())
Producción:
1 s1
Usando lookbehind, la salida generada es ‘1’, mientras que sin usar lookbehind, la salida generada es ‘s1’. Cualquier carácter de palabra (\w) que precede a cualquier dígito decimal es consumido por expresiones regulares, por lo que no se convierte en parte de la string de búsqueda.
Mirada negativa hacia atrás
Lookbehind negativo es lo opuesto a lookbehind. Es para asegurar que la string de búsqueda no esté precedida por <lookbehind_regex> .
Sintaxis:
(?<!<lookbehind_regex>) Negative Lookbehind
Ejemplo 4:
Python3
import re # Lookbehind example1 = re.search('(?<=[a-z])geeks', 'geeksforgeeks') print(example1.group()) # Negative Lookbehind example2 = re.search('(?<![a-z])123', 'geeks123') # Output is None because 123 # is preceded by a character i.e 's' print(example2)
Producción:
geeks None
Publicación traducida automáticamente
Artículo escrito por sailees14032000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA