Aprendizaje de rastreadores de Python 20
contenido
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:
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. . .
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:
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:
...
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.