最近要做一个爬虫的小软件,然后开始学习一些基础知识,然后做点小笔记吧。
正则表达式——用一种简洁的形式实现文本匹配,比如说有一组字符串
‘PN’ ‘PYN’ ‘PYTN’ ‘PYTHN’'PYTHON’可以使用P(Y|YT|YTH|YTHO)?N
‘PYYYYY…’有一到无穷多个Y,可以使用PY+进行表示
举完例子以后言归正传,正则表达式相当于提取出了这组字符串的特征,用这些特征来进行字符串匹配。就像现在做的各种人脸识别,就是用提取出来的特征进行匹配与识别。
正则表达式的语法,是正确应用正则表达式十分重要的部分,大家在练习中慢慢掌握啦。
建议大家还是做一些题,练习练习它的使用。
re库提供了一些搜寻函数
re.findall(pattern,string,flags)——搜索字符串,以列表类型返回全部能返回的子串。
flags为控制符,的属性有:
re.I——忽略大小写,re.M——把^当做每行匹配的开始,re.S——表示.能够匹配所有字符。
re.match——从字符串的开始位置匹配字符串,返回match对象。
以上是函数用法,如果是面向对象用法,则要将字符串形式编译成正则表达式对象。regex=re.compile(pattern,flags),然后,对regex进行操作。
另外,还有一点,re库默认采用的是最大匹配,如果要实现最小匹配的话,一般在操作符后面增加?来指定返回最小匹配。