导入
import re
from re import*
from re import findall,search,sub,S
常用符号
常用符号:点号,星号,问号与括号,使用\d+匹配纯数字
.:匹配任意字符(类似于占位符),除换行符\n
*:匹配前一个字符0次或无限次
?:匹配前一个字符0或1次
.*:贪心算法
.*?:非贪心算法
如c=re.findall('xx.*?xx',code)结果—>['xxlovexx']
(.*?):xx(.*?)xx—>['love']
():括号内的数据作为结果返回
常用方法
1.findall
匹配所有符号规律的内容,返回包含结果的列表
如:c=re.findall('xx.*?xx',code)
结果—>['xxlovexx']
c=re.findall('xx(.*?)xx555xx('.*?')xx',code2)
结果是提取出的第二个内容
c=re.findall('(\d+)',code)
结果提取出code里纯数字
2.search
匹配并提取第一个符号规律的内容,返回一个正则表达式对象(object)
如:c=re.search('xx(.*?)xx555xx('.*?')xx',code).group(2)
结果为提取出的第二个内容
3.sub
替换符合规律的内容,返回替换后的值
如:1235555555123
c=re.sub('123(.*?)123','123789123',code)
结果123与123之间的内容被替换成789即123789123
举个学习小例
(灵活运用findall与search,获取部分信息时可以用先大后小的方法)
text.txt网页文件如下:
用search遍历查找首要符合规律的内容(提升效率和节省时间),而findall遍历查找所有符合情况的内容
将href后的链接依次遍历出来
在<ul></ul>里(大方向)找出链接里的部分内容(小方向),可用">(.*?)</a>可获取这部分
利用sub进行网页翻页,替换页数
推荐网站:http://www.jikexueyuan.com