zoukankan      html  css  js  c++  java
  • 2016/12/15学习笔记正则表达式

    re.compile(r"[w'-]+")

    w表示匹配包括下划线的任何单词字符。等价于[A-Za-z0-9]

    +表示匹配1或多个正好在它之前的那个字符;

    匹配已

     re_cdata=re.compile('//<![CDATA[[^>]*//]]>',re.I) #匹配CDATA
        re_script=re.compile('<s*script[^>]*>[^<]*<s*/s*scripts*>',re.I)#Script
        re_style=re.compile('<s*style[^>]*>[^<]*<s*/s*styles*>',re.I)#style
        re_br=re.compile('<brs*?/?>')#处理换行
        re_h=re.compile('</?w+[^>]*>')#HTML标签
        re_comment=re.compile('<!--[^>]*-->')#HTML注释
        s=re_cdata.sub('',htmlstr)#去掉CDATA
        s=re_script.sub('',s) #去掉SCRIPT
        s=re_style.sub('',s)#去掉style
        s=re_br.sub(' ',s)#将br转换为换行
        s=re_h.sub('',s) #去掉HTML 标签
        s=re_comment.sub('',s)#去掉HTML注释
        #去掉多余的空行
        blank_line=re.compile(' +')
        s=blank_line.sub(' ',s)
        s=replaceCharEntity(s)#替换实体
        return s

    ##替换常用HTML字符实体.
    #使用正常的字符替换HTML中特殊的字符实体.
    #你可以添加新的实体字符到CHAR_ENTITIES中,处理更多HTML字符实体.
    #@param htmlstr HTML字符串.
    def replaceCharEntity(htmlstr):
        CHAR_ENTITIES={'nbsp':' ','160':' ',
                    'lt':'<','60':'<',
                    'gt':'>','62':'>',
                    'amp':'&','38':'&',
                    'quot':'"','34':'"',}
       
        re_charEntity=re.compile(r'&#?(?P<name>w+);')
        sz=re_charEntity.search(htmlstr)
        while sz:
            entity=sz.group()#entity全称,如&gt;
            key=sz.group('name')#去除&;后entity,如&gt;为gt
            try:
                htmlstr=re_charEntity.sub(CHAR_ENTITIES[key],htmlstr,1)
                sz=re_charEntity.search(htmlstr)
            except KeyError:
                #以空串代替
                htmlstr=re_charEntity.sub('',htmlstr,1)
                sz=re_charEntity.search(htmlstr)
        return htmlstr

    def repalce(s,re_exp,repl_string):
        return re_exp.sub(repl_string,s)

    if __name__=='__main__':
        s=file('Google.htm').read()
        news=filter_tags(s)
        print news

    ——————————————————华丽的分割线——————————————————————————

    import urllib2,re
    x=urllib2.urlopen('http://www.csdn.net').read()
    re_h=re.compile('</?w+[^>]*>')
    s=re_h.sub('',x) 
    print s

  • 相关阅读:
    03-高级选择器,属性选择器,伪类选择器
    02-css的选择器
    01- css引入方式
    HTML(三)
    HTML(二)
    Sublime text3 插件ColorPicker(调色板)不能使用快捷键的解决方法
    Sublime Text 3 快捷键汇总
    Sublime Text 3下载及常用插件安装
    box-shadow参数以及使用
    jquery.nav.js定位导航滚动插件
  • 原文地址:https://www.cnblogs.com/cpetcoandy/p/6182463.html
Copyright © 2011-2022 走看看