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}", 不合法!')
- 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('用户名不合法')
- 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}", 不合法!')
- 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)
-
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('输入非汉字')
-
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'))
-
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)