Ejercicios de expresión regular

Utilice expresiones regulares para completar las siguientes operaciones:

1. Coincidencia de nombre de usuario

Requisitos: 1. El nombre de usuario solo puede contener guiones bajos alfanuméricos.

2. No se puede empezar con un número

3. La longitud está en el rango de 6 a 16 bits.

users = input('请输入用户名:')
re_str = r'[a-zA-Z_][a-zA-Z_0-9]{5,15}'
judge = (fullmatch(re_str, users))
print('合法') if judge!=None else print('用户名不合法')

或者
if fullmatch(re_str, user_name):
    print(f'"{user_name}", 合法!')
else:
    print(f'"{user_name}", 不合法!')
  1. Coincidencia de contraseña

Requisitos: 1. No se pueden incluir estos símbolos especiales @ # ¥% ^ & *

2. Debe comenzar con una letra

3. La longitud está en el rango de 6 a 12 dígitos.

users = input('请输入密码:')
re_str = r'[a-zA-Z][^!@#¥%^&*]{5,11}'
judge = (fullmatch(re_str, users))
print('合法') if judge!=None else print('用户名不合法')
  1. Coincidencia de direcciones IP en formato ipv4
    Sugerencia: El rango de direcciones IP es 0.0.0.0-255.255.255.255
users = input('请输入密码:')
re_str = r'((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])'
if fullmatch(re_str, users):
    print(f'"{user_name}", 合法!')
else:
    print(f'"{user_name}", 不合法!')
  1. Extraiga el valor en los datos de entrada del usuario (el valor incluye números positivos y negativos, así como enteros y decimales) y sume
例如:“-3.14good87nice19bye” =====> -3.14 + 87 + 19 = 102.86
nums = input('请输入值:')
re_str =  r'-?\d+\.?\d*'
lists = findall(re_str, nums)
print(nums)
result = reduce(lambda s, item: s+float(item), nums, 0)
print(result)
  1. Verifique que el contenido de entrada solo pueda ser caracteres chinos

    nums = input('请输入内容:')
    re_str = r'[\u4e00-\u9fa5]+'
    judge = (fullmatch(re_str, nums))
    print('输入正确')if judge !=None else print('输入非汉字')
    
  2. Coincidir con números enteros o decimales (incluidos números positivos y negativos)

     re_str = r'[-+]?([1-9]\d*|0)(\.\d+)?'
     print(fullmatch(re_str, '.34'))
    
  3. Obtiene una cadena que usa una expresión regular en toda la información de fecha para que coincida con el formato de fecha: 2018-12-6

    Tenga en cuenta que el rango del año es 1 ~ 9999, el rango del mes es 1 ~ 12 y el rango del día es 1 30 o 1 31 o 1 a 29 (los años bisiestos no se consideran)

  re_str = '[1-9]\d{0,3}-((2-([1-9]|[1-2]\d))|		([13578]|10|12)-(([1-9]|[1-2]\d)|3[01])|([469]|11)-(([1-9]|[1-2]\d)|30))'
  print(fullmatch(re_str, '2829-12-31'))
    ```
9. 替换字符串中的不良内容:将输入的内容中的不良内容全部替换成*(参考王者荣耀聊天要求)

 str1 = 'Sb嘛?没看到在团嘛!傻吗?妈的!f,u,c k!'
re_str = '(?i)f.*u.*c.*k|傻[xb]?|sb|妈|法克'
result = sub(re_str, '*', str1)
print(result)

Supongo que te gusta

Origin blog.csdn.net/SaharaLater/article/details/111874762
Recomendado
Clasificación