python--re模块

python–re模块
1、常用例子:

pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a'
                         + '.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'
                         + '.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>', re.S)
    items = re.findall(pattern, html)  #得到元组
    for item in items:
        yield {
            'index': item[0],
            'image': item[1],
            'title': item[2],
            'actor': item[3].strip()[3:],
            'time': item[4].strip()[5:],
            'score': item[5] + item[6]
        }

例子2

"""
    homeworks=s11;s2.id=1004322092;s2.lessons=s12;s2.name="第一讲 人工智能概述"
    <class 'list'>: [('1004322092', '第一讲 人工智能概述'), ('1004322093', '第二讲 Python语法串讲'), ('1004322094', '第三讲 Tensorflow框架'), ('1004322095', '第四讲 神经网络优化'), ('1004322096', '第五讲 全连接网络基础'), ('1004322097', '第六讲 全连接网络实践'), ('1004322098', '第七讲 卷积网络基础'),
     ('1004322099', '第八讲 卷积网络实践'), ('1209059065', '第九讲 课程项目分享')]
    """

获取:

      chapter_pattern_compile = re.compile(
        r'homeworks=.*?;.+id=(\d+).*?name="(.*?)";')
    # 查找所有一级级目录id和name
    chapter_set = re.findall(chapter_pattern_compile, source_info_transcoding)  #结果是[(),()]

使用:

for index, single_chaper in enumerate(chapter_set):
       pass

总结:

 1、括号为目标, 2 尽量用非贪婪(.*?),贪婪(.*) :所有的都匹配   3、有换行符 : re.S
 

2、python 的re模块提供了re.sub用于替换字符串中的匹配项

语法:

re.sub(pattern, repl, string, count=0)
参数:

pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值