La explicación de expresiones regulares más simple y fácil de entender en toda la red, con ejemplos para explicar

Expresión regular:

Herramienta de prueba en línea de expresiones regulares: https://regex101.com/

La Enciclopedia Baidu explica que las expresiones regulares son una fórmula lógica para las operaciones con cadenas .

Podemos entender las expresiones regulares como una regla, una regla establecida por nosotros mismos, y dejar que la computadora encuentre la cadena que necesita de acuerdo con esta regla. Pero cómo se formula esta regla, por supuesto que no se puede hacer a ciegas, y decirle a la computadora: "¡Encuéntrame todas las oraciones (cadenas) que contienen a Andy Lau en este artículo!" Por supuesto que la computadora no entiende , por lo tanto, vamos a explicar algunos símbolos a continuación, permitirle configurar expresiones regulares correctamente, configurar reglas y dejar que la computadora lo ayude a encontrar los caracteres que desea.

Las aplicaciones más comunes de las expresiones regulares se encuentran al final del texto.

Uso básico

  1. ?: indica que el carácter que precede a ? debe aparecer 0 o una vez. ¿Simplemente pon? Los caracteres anteriores son opcionales . Por ejemplo, ingresa una expresión regular té? , entonces la computadora encontrará cadenas como te y tel.
  2. *: Indica que el carácter anterior debe aparecer 0 o más veces. Por ejemplo, si ingresa una expresión regular ab*c, la computadora encontrará cadenas como ac, abc y abbbbbc.
  3. +: indica que el carácter que precede a + debe aparecer más de una vez. Por ejemplo, si ingresa una expresión regular ab+c, la computadora encontrará cadenas como abc y abbbbc.
  4. {}: Coincidencia exacta: Coincide tantas veces como quieras. Por ejemplo, si ingresa una expresión regular ab{6}c, la computadora encontrará una cadena como abbbbbc. Ingresa una expresión regular ab{2,6}c, luego la computadora encontrará cadenas como abbc, abbbc, abbbbc, abbbbbc, abbbbbc. ab{2,}c ​​significa que b aparece más de dos veces.

Las reglas anteriores de calificador único han terminado, si desea que la cadena aparezca un cierto número de veces, es suficiente encerrarla entre ( ). Por ejemplo (ab)+c, se encontrarán las cadenas que cumplen las reglas como ababababc en el artículo.

uso intermedio

Operador OR: |, como (bebé|mamá), el artículo encontrará un bebé o una mamá.

Clase de carácter: [], puede coincidir con una cadena compuesta de caracteres en el cuadro. Por ejemplo, si se formula la expresión regular [alo]+, entonces se puede encontrar (coincidir) afsgsglo, porque alo está incluido en afsgsglo. La diferencia con respecto a () es que no habla del orden, siempre que exista. Ejemplo común: [a-zA-Z0-9]+.

Sin operador: ^, que generalmente se coloca antes de la expresión, lo que indica que todos los caracteres que no sean ellos pueden coincidir. Por ejemplo, no puede ver letras mayúsculas por naturaleza y se siente mal cuando las ve, puede ingresar la expresión regular [ ^AZ]+.

Metacaracteres:

Numeración Ejemplo ilustrar
1 . coincide con cualquier carácter excepto nueva línea
2 \d Números de coincidencia:[0-9]
3 \D Coincidir con no dígitos:[^0-9]
4 \s Coincide con los caracteres de espacio en blanco:[\t\r\n\f]
5 \S Coincidir con espacios no en blanco:[^\t\r\n\f]
6 \w Coincidencia de caracteres de una sola palabra:[A-Za-z0-9_]
7 \W Coincidencia de caracteres que no son palabras:[ ^A-Za-z0-9_]

Hacer coincidir el comienzo de la línea, como a^, solo puede encontrar la cadena con un que aparece al comienzo de la línea. Tales como aff.

Los finales de línea coincidentes, como a$, solo pueden encontrar cadenas con a al final de la línea. Como llla.

Uso avanzado:

Emparejamiento codicioso y perezoso:

El emparejamiento codicioso es emparejar tantos como sea posible. La coincidencia perezosa es coincidir lo menos posible.

si tu quieres

<div><span>hello world</span></div>

Haga coincidir las etiquetas div y span.

Inconscientemente queremos usar <.+>, siempre que haya algo en <>, coincidirá.

Pero el resultado final es:

共找到 1 处匹配:
<div><span>hello world</span></div>

Convertimos la coincidencia codiciosa en coincidencia perezosa y cambiamos la expresión regular a <.+?>, el resultado final es:

共找到 4 处匹配:
<div>
<span>
</span>
</div>

Se hace.

Aplicaciones comunes

Expresión regular para juzgar el código python de la contraseña:

import re

lower = re.compile('[a-z]')
upper = re.compile('[A-Z]')
digit = re.compile('[0-9]')
wrong = re.compile('[^a-zA-Z0-9]')

while True:
    password = input('请输入大于8位的包含大小写字母和数字的密码:')
    if len(password) < 8:
        print('输入的密码小于8位')
    elif wrong.search(password) != None:
        print('包含无效字符')
    else:
        if lower.search(password) == None:
            print('未包含小写字母')
        elif upper.search(password) == None:
            print('未包含大写字母')
        elif digit.search(password) == None:
            print('未包含数字')
        else:
            print('输入成功')
            break

Supongo que te gusta

Origin blog.csdn.net/Dai_sir_man/article/details/120064562
Recomendado
Clasificación