美文网首页
爬虫再学习_正则

爬虫再学习_正则

作者: 黄yy家的jby | 来源:发表于2021-01-20 00:03 被阅读0次
    • . 表示 任何单个字符
    • [] 表示单个字符取值范围[a-z]
    • [^ ] 表示非字符集
    • 星号 表示前一个字符0次或无线次
      abc*: ab, abc, abcc, abcccc...
    • ?表示前一个字符出现0次或1次
      abc?:ab,abc
    • |表示左右任意一个
      abc|def:abc或def
    • {m,n}扩展前一个字符m至n此
    • ^ 匹配字符串开头
      ^abc:abc且在一个字符串开头
    • 匹配字符串结尾 abc:abc且在一个字符串结尾
    • \d 数字
    • \w 单词 大写小写数字带_

    以上正则匹配语言都是用,python正则库为re
    常用功能函数
    re.search() 搜索正则第一个位置,返回match对象
    re.match()
    re.findall() 返回全部能匹配的子串
    re.split() 按照正则进行分割,返回列表类型
    re.sub()替换所有匹配正则的自传,返回替换后的字符串

    匹配模式
    re.I 匹配对大小写不敏感
    re.S 使.(点)匹配包括换行在内的所有字符

    import re
    
    pat = re.compile('a') #a是正则表达式,用来验证其他字符
    m = pat.search('cba')#search字符串被校验的内容
    
    m = re.search('a','cba') #前面是规则,后面是校验的对象
    re.sub('a','A','abcdefg') #找到a用A替换,在第三个字符串中查找a
    #建议在正则表达式中,被比较的字符串前面加上r,不用担心转移字符的问题
    
    soup = BeautifulSoup(html,'html.parser')
    
    for item in soup.find_all('div',class_='item'):
        data = []
        item = str(item)
    
        findlink = re.compile(r'<a href="(.*?)">')
        link = re.findall(findlink,item)[0] # 用re库来通过正则表达式查找指定的字符串
    

    相关文章

      网友评论

          本文标题:爬虫再学习_正则

          本文链接:https://www.haomeiwen.com/subject/hmhhzktx.html