第一题
# 第一题 \d,\W,\s,.,*,+,?分别是什么?
'''
\d:表示0-9任意一个数字
\W:表示任意一个字母,数字,下划线的反集
\s:空格,制表符,换页符等空白字符的任意一个
.:表示除换行符\n以外的任意一个字符
*:匹配0次或者无数次等价于{0,}
+:匹配1次或者无数次等价于{1,}
?:匹配表达式一次或者零次等价于{0,1}
'''
第二题
# 第二题 \d{1,2}*这样的写法对吗?请说明理由。
'''
这样的写法不对,因为{1,2}表示匹配1次到两次,而*等价于{0,},这样就相当用重复使用,重复字符,所以用法不对。
'''
第三题
# 第三题 说一说.*和.*?的区别。
'''
.*会尽可能多的匹配最多无上限有多少匹配多少,.*?会尽可能少的匹配最少为0次
'''
第四题
# 第四题 匹配列表中的所有以.com或.cn结尾的网址
import re
li = ['www.baidu.com','www.abc.cn','www.123.con','www.guge.cm','www.sdcom']
new_li = []
for i in range(len(li)):
li[i] = re.search(r'.*?\.com|.*?\.cn', li[i])
if li[i]:
new_li.append(li[i].group())
print(new_li)
第五题
# 第五题 匹配下列html中所有li标签里面的文字信息
import re
html = '''<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">本周热点</div>
<div class="panel-body"></div>
<!-- List group -->
<ul class="list-group">
<li class="list-group-item">三门峡市陕州区一中餐厅管理工作...</li>
<li class="list-group-item">鹤壁七中多措并举助推"六城联创...</li>
<li class="list-group-item">沙溪中学开展"扫黑除恶"专项宣...</li>
<li class="list-group-item">中牟县晨阳路学校:"点缀生活 ...</li>
<li class="list-group-item">上饶市第二保育院开展预防手足口...</i>
</ul>
'''
result = re.findall(r'[>].*?[.]', html)
for i in range(len(result)):
result[i] = result[i].replace('>', '.').strip('.')
print(result)