question1. 写一个正则表达式判断一个字符串是否是ip地址
规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小是0-255
255.189.10.37 正确
256.189.89.9 错误
import re
str1 = input('请输入一个ip地址:')
if re.fullmatch(r'\d+\.\d+\.\d+\.\d+', str1):
list1 = str1.split('.')
for value in list1:
if int(value) > 255:
print(str1, '错误')
break
else:
print(str1, '正确')
else:
print(str1, '错误')
"""
请输入一个ip地址:255.249.239.159
255.249.239.159 正确
"""
question2. 计算一个字符串中所有的数字的和
例如:字符串是:‘hello90abc 78sjh12.5’ 结果是90+78+12.5 = 180.5
# str2 = input('请输入一个ip地址:')
str2 = 'hello90abc 78sjh12.5 .55...'
list2 = re.findall(r'\d+\.\d+|\.\d+|\d+\.|\d+', str2)
temp_str = ''
temp_float = 0
for value in list2[0:-1]:
temp_str = temp_str + value + '+'
temp_float += float(value)
temp_str = temp_str + list2[-1] + ' ='
temp_float += float(list2[-1])
print("字符串:'%s'的结果是%s %.2f" % (str2, temp_str, temp_float))
"""
字符串:'hello90abc 78sjh12.5 .55...'的结果是90+78+12.5+.55 = 181.05
"""
question3.验证输入的内容只能是汉字
str3 = '哈哈哈啦啦啦'
if re.fullmatch(u'[\u4e00-\u9fa5]+', str3):
print('"', str3, '"', '全是汉字', sep='')
else:
print('"', str3, '"', '不全是汉字', sep='')
"""
"哈哈哈啦啦啦"全是汉字
"""
question4.电话号码的验证
# number = input('请输入一个电话号码:')
number = '13712341234'
with open('phone_number.txt') as f:
content = f.read()
list3 = re.findall(r'\d\d\d', content)
list4 = list(set(list3))
list3 = list4.copy()
"""方法1:强行正则表达式"""
for index in range(0, len(list4)):
list4[index] = list4[index] + '\d{8}'
# print(list4)
for index in list4:
if re.fullmatch(r'%s' % index, number):
print(number, ':是电话号码', sep='')
break
else:
print(number, ':不是电话号码', sep='')
"""方法2:正常"""
if number[0:3] in list3:
print(number, ':是电话号码', sep='')
else:
print(number, ':不是电话号码', sep='')
"""
13712341234:是电话号码
13712341234:是电话号码
"""
网友评论