发表于: 2018-04-03 01:35:08
2 904
今天完成的事情:
1.re.compile的意义
2.pattern的大致意思和用法
3.进一步的正则表达式(/d、*、+、?等)
4.掌握了如何匹配代码
5.正则的贪婪与非贪婪
明天计划的事情:
进一步对脚本进行解读,尝试get如何对IP地址的出现次数进行统计。
遇到的问题:
1.Pattern的意义
收获:
进一步掌握了如何用正则进行匹配,并向任务一进了一小步。
详情如下:
首先,通过对正则表达式的理解,发现脚本中的前几行已经可以理解了
较有难度的是“pattern = re.compile(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')”这一行
考虑到re.findall是在全文中检索,“re.compile”应该也是类似功能的代码,即以某种方式检索。经百度,“一个Pattern是一个正则表达式经编译后的表现模式”,不太懂,理解成,把文本按某种方式和规则编译
随后,对('^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')开始解读。“^”为caret,从开头进行索引,不是开头的不要。"\d"为匹配任何十进制数字,相当于[0-9],{1,3}据猜测为次数1~3次的意思,恰好IP也为三位数以内的数字,经查证,确实如此。因此,该行代码的意思就是,
“将文本进行编译,从头开始匹配“三位数以内的数字.三位数以内的数字.三位数以内的数字.三位数以内的数字””,即将IP进行编译并匹配
评论