Python | re.buscar() vs re.match()

Requisito previo: Regex en Python

Tanto re.search () como re.match() son funciones del módulo re en python. Estas funciones son muy eficientes y rápidas para buscar en strings. La función busca alguna substring en una string y devuelve un objeto coincidente si lo encuentra; de lo contrario, no devuelve ninguno.

Hay una diferencia entre el uso de ambas funciones. Ambos devuelven la primera coincidencia de una substring que se encuentra en la string, pero re.match() busca solo desde el principio de la string y devuelve el objeto de coincidencia si lo encuentra. Pero si se encuentra una coincidencia de substring en algún lugar en el medio de la string, no devuelve ninguna. 
Mientras que re.search() busca la string completa incluso si la string contiene varias líneas e intenta encontrar una coincidencia de la substring en todas las líneas de la string.
 

Ejemplo : 

Python3

# import re module
import re
 
Substring ='string'
 
 
String1 ='''We are learning regex with geeksforgeeks
         regex is very useful for string matching.
          It is fast too.'''
String2 ='''string We are learning regex with geeksforgeeks
         regex is very useful for string matching.
          It is fast too.'''
 
# Use of re.search() Method
print(re.search(Substring, String1, re.IGNORECASE))
# Use of re.match() Method
print(re.match(Substring, String1, re.IGNORECASE))
 
# Use of re.search() Method
print(re.search(Substring, String2, re.IGNORECASE))
# Use of re.match() Method
print(re.match(Substring, String2, re.IGNORECASE))

Producción : 

<re.Match object; span=(75, 81), match='string'>
None
<re.Match object; span=(0, 6), match='string'>
<re.Match object; span=(0, 6), match='string'>

Conclusión : 

  1. re.search() devuelve un objeto de coincidencia e implica que la primera coincidencia se encuentra en el índice 69.
  2. re.match() no devuelve ninguno porque la coincidencia existe en la segunda línea de la string y re.match() solo funciona si la coincidencia se encuentra al principio de la string. 
  3. re.IGNORECASE se usa para ignorar la distinción entre mayúsculas y minúsculas en las strings. 
  4. Tanto re.search() como re.match() devuelven solo la primera aparición de una substring en la string e ignoran las demás. 

Publicación traducida automáticamente

Artículo escrito por deepak_jain 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 *