第一题

  1. # 第一题 \d,\W,\s,.,*,+,?分别是什么?
  2. '''
  3. \d:表示0-9任意一个数字
  4. \W:表示任意一个字母,数字,下划线的反集
  5. \s:空格,制表符,换页符等空白字符的任意一个
  6. .:表示除换行符\n以外的任意一个字符
  7. *:匹配0次或者无数次等价于{0,}
  8. +:匹配1次或者无数次等价于{1,}
  9. ?:匹配表达式一次或者零次等价于{0,1}
  10. '''

第二题

  1. # 第二题 \d{1,2}*这样的写法对吗?请说明理由。
  2. '''
  3. 这样的写法不对,因为{1,2}表示匹配1次到两次,而*等价于{0,},这样就相当用重复使用,重复字符,所以用法不对。
  4. '''

第三题

  1. # 第三题 说一说.*和.*?的区别。
  2. '''
  3. .*会尽可能多的匹配最多无上限有多少匹配多少,.*?会尽可能少的匹配最少为0次
  4. '''

第四题

  1. # 第四题 匹配列表中的所有以.com或.cn结尾的网址
  2. import re
  3. li = ['www.baidu.com','www.abc.cn','www.123.con','www.guge.cm','www.sdcom']
  4. new_li = []
  5. for i in range(len(li)):
  6. li[i] = re.search(r'.*?\.com|.*?\.cn', li[i])
  7. if li[i]:
  8. new_li.append(li[i].group())
  9. print(new_li)

第五题

  1. # 第五题 匹配下列html中所有li标签里面的文字信息
  2. import re
  3. html = '''<div class="panel panel-default">
  4. <!-- Default panel contents -->
  5. <div class="panel-heading">本周热点</div>
  6. <div class="panel-body"></div>
  7. <!-- List group -->
  8. <ul class="list-group">
  9. <li class="list-group-item">三门峡市陕州区一中餐厅管理工作...</li>
  10. <li class="list-group-item">鹤壁七中多措并举助推"六城联创...</li>
  11. <li class="list-group-item">沙溪中学开展"扫黑除恶"专项宣...</li>
  12. <li class="list-group-item">中牟县晨阳路学校:"点缀生活 ...</li>
  13. <li class="list-group-item">上饶市第二保育院开展预防手足口...</i>
  14. </ul>
  15. '''
  16. result = re.findall(r'[>].*?[.]', html)
  17. for i in range(len(result)):
  18. result[i] = result[i].replace('>', '.').strip('.')
  19. print(result)