爬虫再学习_正则

  • . 表示 任何单个字符
  • [] 表示单个字符取值范围[a-z]
  • [^ ] 表示非字符集
  • 星号 表示前一个字符0次或无线次
    abc*: ab, abc, abcc, abcccc...
  • ?表示前一个字符出现0次或1次
    abc?:ab,abc
  • |表示左右任意一个
    abc|def:abc或def
  • {m,n}扩展前一个字符m至n此
  • ^ 匹配字符串开头
    ^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'')
    link = re.findall(findlink,item)[0] # 用re库来通过正则表达式查找指定的字符串

你可能感兴趣的:(爬虫再学习_正则)