第一题是不是匹配规则有问题?我圈出来的地方是不是少了个\

来源:6-10 【总结】Python常见正则匹配案例

默默无名的小人物

2021-04-22 11:56:04

http://img.mukewang.com/climg/6080f3100939d74c07690362.jpg

我验证了一下第一题,发现只能匹配1-9和100,两位数就不行,如下图

http://img.mukewang.com/climg/6080f3420984889709740599.jpg

增加了\后可以匹配1-100内的任意数字

http://img.mukewang.com/climg/6080f36b099fb9fd10620595.jpg


这一章里面第一题,第二题,第三题都有这个问题,请老师给仔细看看给修改一下吧



还有第五题,执行完成为什么是空呢,这个也请老师给讲一下吧

http://img.mukewang.com/climg/6080fa2c091a47c411590605.jpg

写回答

1回答

时间,

2021-04-22

同学,你好!

1、是缺少了\,已经对有问题的部分进行了修改

2、第五题,W前边是有\的

http://img.mukewang.com/climg/60810e280978d6fe06870204.jpg

全部正确代码如下:

# 1、匹配1 - 100之间的数
import re
s = '100' # 1-100内的任意数字
ret = re.match(r'(100|[1-9]\d{0,1})$', s)
print(ret.group())

# 2、匹配座机号码:010 - 12345678,其构造规则为[3位数字][-][8位数字]或者0431 - 1234567,
# 其构造规则为[4位数字][-][7位数字]
import re
s = "010-12345678"
ret = re.search(r'^\d{3,4}-\d{7,8}$', s)
print(ret.group())

# 3、匹配5 - 10位纯数字组成的qq,且不能以0开头
import re
s = "11010"
ret = re.match(r'[1-9]\d{4,9}$', s)
if ret != None:
print(ret.group())
else:
print('匹配失败!')

# 4、取出字符串中的所有字母
import re
s = "43arwer32656fafa6546jjuy#H"
res = re.compile(r'[a-zA-Z]+')
ret = res.findall(s)
print(ret)

# 5、找出以字母e结尾的单词,忽略大小写
import re
s = 'study hard and make progress every day'
res = re.compile(r'\w+y\b', re.I) # \b为边界
ret = res.findall(s)
print(ret)

# 6、将多个重复的字母替换成 &
import re
s = "PythondddJavauuuHTMLFFPHP"
res = re.compile(r'([a-zA-Z])\1+')
ret = res.sub('&', s)
print(ret)

# 7、将字符串变成'我要学Python编程'
import re
s = "我我...我我...我要..要要...要要...学学学...学学..Python...编编编..编程..程.程...程...程"
res = re.sub(r'\W+', '', s)
ret = re.sub(r'(.)\1+', r'\1', res)
print(ret)

祝学习愉快!

0

0 学习 · 2433 问题

查看课程