1
写一个正则表达式判断一个字符串是否是ip地址
规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小是0-255
255.189.10.37 正确
256.189.89.9 错误
import re
re_str = r"(25[0-9]\.|2[0-4][0-9]\.|[0-1]?[0-9]?[0-9]?\.){3}(25[0-9]|2[0-4][0-9]|[0-1]?[0-9]?[0-9]?)"
while True:
ip_str = input("ip:")
if re.fullmatch(re_str, ip_str):
print("正确")
else:
print("错误")
ip:255.189.10.37
正确
ip:256.189.89.9
错误
2
计算一个字符串中所有的数字的和
例如:字符串是:‘hello90abc 78sjh12.5’ 结果是90+78+12.5 = 180.5
import re
num_str ="hello90abc 78sjh12.5"
def str_sum(num_str:str):
res_sum = 0
re_str = r"(\d+\.\d+)|(\d+)"
res = re.findall(re_str, num_str)
for i in res:
if i[0]:
res_sum += float(i[0])
if i[1]:
res_sum += float(i[1])
return res_sum
print(str_sum(num_str))
180.5
3
验证输入的内容只能是汉字
import re
def judge(judge_str:str):
re_str = r"[\u4e00-\u9fa5]+"
res = re.fullmatch(re_str,judge_str)
if res:
return "right"
else:
return "wrong"
while True:
judge_str = input(">>")
print(judge(judge_str))
wrong
123
wrong
你好123
wrong
你好
right
4
电话号码的验证
import re
def tel(tel_nums:str):
res_str = r"1[3578][0-9]{9}"
res = re.fullmatch(res_str,tel_nums)
if res:
return "right"
else:
return "wrong"
while True:
phone = input(":")
print(tel(phone))
:138123456789
wrong
:13812345678
right
:15312345678
right
选择题
1
- 能够完全匹配字符串“(010)-62661617”和字符串“01062661617”的正则表达式包括( )
A. “(?\d{3})?-?\d{8}”
B. “[0-9()-]+”
C. “[0-9(-)]\d”
D. “[(]?\d[)-]\d*”
答案
ABD
C:“-”取不到,原因:在两个字符中间
2
- 能够完全匹配字符串“c:\rapidminer\lib\plugs”的正则表达式包括( )
A. “c:\rapidminer\lib\plugs”
B. “c:\rapidminer\lib\plugs”
C. “(?i)C:\RapidMiner\Lib\Plugs” ?i:将后面的内容的大写变成小写
D. “(?s)C:\RapidMiner\Lib\Plugs” ?s:单行匹配
转义字符匹配不会!