Método Python re.search()
re.search()es Pythonremódulo utilizado parabuscar patronesla función, buscará en la cadenaescaneando y buscandola primera posición que coincida con la expresión regular especificada.
yre.match()A diferencia de,re.search()No requiere que la coincidencia comience desde el inicio de la cadena; buscará coincidencias en cualquier posición de la cadena.
Definición de la palabra: searchsignifica buscar y encontrar.
Sintaxis básica y parámetros
re.search()es una función de nivel de módulo, que se invoca directamente a través delremódulo.
Formato de sintaxis
re.search(pattern, string, flags=0)
Descripción de parámetros
- pattern:
- Tipo: cadena (str)
- Descripción: el patrón de expresión regular a coincidir.
- string:
- Tipo: cadena (str)
- Descripción: la cadena a buscar, en la que se encuentra la coincidencia.
- flags:
- Tipo: entero (int, opcional)
- Descripción: banderas de expresión regular para controlar el modo de coincidencia. Como
re.IGNORECASE、re.MULTILINEetc.
Descripción de la función
- Valor de retorno: si se encuentra una coincidencia, devuelve un
matchobjeto; si no se encuentra ninguna coincidencia, devuelveNone。 - Efecto: devuelve la información de posición de la primera coincidencia, incluidos el contenido coincidente, la posición inicial y la posición final.
Ejemplo
A través de una serie de ejemplos de simples a complejos, dominemos a fondore.search()el uso de.
Ejemplo 1: Uso básico - Encontrar la primera coincidencia
Ejemplo
# Buscar el primer número que coincida en la cadena
text = "Python 3.9 es la versión más utilizada"
result = re.search(r'\d+\.\d+', text)
if result:
print("Coincidencia encontrada:", result.group()) # Salida: 3.9
print("Posición inicial de la coincidencia:", result.start()) # Salida: 7
print("Posición final de la coincidencia:", result.end()) # Salida: 10
Resultado esperado de la ejecución:
找到匹配: 3.9 匹配起始位置: 7 匹配结束位置: 10
Análisis del código:
r'\d+\.\d+'Coincide con uno o más dígitos, seguidos de un punto y luego uno o más dígitos (formato de número de versión).re.search()Devuelve el objeto de la primera posición coincidente.result.group()Devuelve el contenido de texto coincidente.result.start()yresult.end()Devuelve el índice de posición de la coincidencia.
Ejemplo 2: Encontrar coincidencias en cualquier posición
re.search()Puede buscar en cualquier posición de la cadena, esta es sure.match()principal diferencia.
Ejemplo
text = "Mi número de teléfono es 138-1234-5678, el suyo es 139-9876-5432"
# Buscar el primer número de teléfono
result = re.search(r'\d{3}-\d{4}-\d{4}', text)
if result:
print("Primer número de teléfono:", result.group())
Resultado esperado de la ejecución:
第一个手机号: 138-1234-5678
Análisis del código:
\d{3}-\d{4}-\d{4}Coincide con el formato de número de teléfono chino (3 dígitos-4 dígitos-4 dígitos).re.search()Devuelve la primera coincidencia encontrada y no continúa buscando.
Ejemplo 3: Usar banderas para ignorar mayúsculas y minúsculas
Medianteflagsel parámetro se puede cambiar el comportamiento de coincidencia, como ignorar mayúsculas y minúsculas.
Ejemplo
text = "Python is a Powerful Programming Language"
# Usar re.IGNORECASE para ignorar mayúsculas y minúsculas
result = re.search(r'python', text, re.IGNORECASE)
if result:
print("Encontrado:", result.group()) # Salida: Python
Resultado esperado de la ejecución:
找到: Python
Análisis del código:
re.IGNORECASEHace que la coincidencia no distinga entre mayúsculas y minúsculas, por lo que puede coincidir con "Python".
Ejemplo 4: Extraer contenido de grupos
Usando paréntesis()se pueden crear grupos para extraer las partes específicas de interés.
Ejemplo
text = "Correo del usuario: [email protected]"
# Usar grupos para extraer el nombre de usuario y el dominio
result = re.search(r'(\w+)@(\w+\.\w+)', text)
if result:
print("Coincidencia completa:", result.group()) # [email protected]
print("Grupo 1:", result.group(1)) # user
print("Grupo 2:", result.group(2)) # example.com
Resultado esperado de la ejecución:
完整匹配: [email protected] 第1个分组: user 第2个分组: example.com
Análisis del código:
- Los paréntesis
()crearon dos grupos. result.group(1)yresult.group(2)Extraen respectivamente el contenido de los dos grupos.
Otras extensiones
Módulo re de Python