Aprendizaje de rastreadores de Python 20

Aprendizaje de rastreadores de Python 20

3. Expresiones regulares

2. partido

Match es un método de coincidencia de uso común. Pasar la cadena que necesitamos hacer coincidir y una expresión regular puede detectar si la expresión regular coincide con la cadena.

# match

# 该方法会从字符串的起始位置开始匹配正则表达式,如果匹配,就返回匹配成功的结果;反之,就返回None
import re

content = 'Hello 123 4567 World_This is a Regex Demo'
print(len(content))
result = re.match('^Hello\s\d\d\d\s\d{4}\s\w{10}',content)
print(result)           # 返回匹配后的结果
print(result.group())   # 返回匹配的内容
print(result.span())    # 返回匹配的范围

resultado de la operación:

inserte la descripción de la imagen aquí

El siguiente es un análisis detallado de las expresiones regulares utilizadas en el caso:

^Hello\s\d\d\d\s\d{4}\s\w{10}

Después de pensarlo, todavía adjunto la foto de ayer, realmente no puedo recordarla si no la miro. . .

inserte la descripción de la imagen aquí

El ^ al principio indica el comienzo de la cadena coincidente, es decir, comienza con Hola, y \s indica la coincidencia de caracteres de espacio en blanco (como espacios en blanco, nueva línea, etc.), que se usa para coincidir con el espacio después de Hola. . \d se usa para hacer coincidir cualquier número, uno \d coincide con un número, aquí agregamos tres \d para hacer coincidir 123 respectivamente. \d{4} es una forma de escritura más avanzada (lan ren), lo que significa hacer coincidir el número 4 veces. De manera similar, \w{10} significa hacer coincidir el guión bajo alfanumérico 10 veces.

objetivo de partido 2-1

Después de comprender aproximadamente el uso de match, podemos usar el método match para extraer lo que queremos de la cadena:

# 匹配目标
# 使用()将想要提取的子字符串括起来。()实际上标记了子表达式开始和结束的位置,被标记的子表达式依次对应一个分组(还记得刚刚展示的group字段吗?)
import re

content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^Hello\s(\d+)\s', content)
print(result)
print(result.group(1))  # 传入 1 则会返回被第一个括号包住的内容返回的结果,若是有多个括号,那就传入2,3...以此类推
print(result.group())   # 如果不传入参数 返回完整的匹配结果

resultado de la operación:

inserte la descripción de la imagen aquí

2-2 partido universal

La coincidencia que acabamos de realizar en 2-1 todavía es muy engorrosa. Tenemos que escribir \s para un espacio. ¿Existe un método de coincidencia más simple?

En este momento. y * se puso de pie. Ambos son comparadores universales, . puede coincidir con cualquier carácter excepto la nueva línea y * representa cualquier número. Así que combinándolos a los dos podemos hacer coincidir cualquier personaje.

import re

content = 'Hello 1234567 World_This is a Regex Demo'
res = re.match('^Hello.*Demo$', content)
print(res.group())
print(res.span())

resultado de la operación:

inserte la descripción de la imagen aquí
...
Aprenda esto, aunque está lejos de terminar, pero debe darle a su yo del mañana la oportunidad de expresarse, no
pasado mañana. El yo ha venido y ha adjuntado la segunda mitad del portal.

Supongo que te gusta

Origin blog.csdn.net/szshiquan/article/details/123671003
Recomendado
Clasificación