zoukankan      html  css  js  c++  java
  • 正则表达式功能概括

    正则表达式

    解释:是处理字符串的强大工具,有自己语法结构,能实现字符串的检索、替换、匹配验证等功能。
    对爬虫来说,用它来从html中获得数据就简单了。

    re库

    1.match()
    (更适合检测某个字符串是否符合某个正则表达式的规则,后面会讨论到)

    content='zifuchuan'
    result=re.match(' 正则表达式',content)
    result.group() #返回匹配出的字符串
    result.span() #返回字符串的在原字符串的位置范围
    result.group(1) #输出第一个被()包含的匹配结果

    2.贪婪与非贪婪匹配

    content='Hello 1234567 Word_This is a Demo'
    A=re.match('^Hello.*(d+).*Demo$',content) #贪婪匹配
    B=re.match('^Hello.*?(d+).*Demo$',content) #非贪婪匹配
    print(A)
    print(B)
    结果:
    A:7
    B:1234567
    

    原因:

    贪婪时候,d+ 意思是至少一个数字,而.表示会尽量匹配多的字符,会把123456‘吃掉’。
    非贪婪时候,.
    ? 代表匹配尽量少的字符,从来会把123456留下。

    3.修饰符

    解释:使.能匹配的字符串范围更广。
    1):re.S #使.能匹配任何字符,包括换行符。
    2):re.I #使.匹配对大小字符不敏感。
    3):re.U、re.L、re.X等

    4.转义匹配

    解决:要匹配的字符串包含.的问题。
    在正则表达式里真正想匹配.的时候,在.前加 形成.,来匹配字符串的.

    5.search()
    match()是从字符串头开始匹配正则表达式,若开头不匹配则直接输出 None;
    而search()是先从字符串整体找正则表达式。

    6.findall()

    search()只能匹配字符串中匹配中的第一个,而findall()会返回所有获取的内容,结果
    返回一个list列表。

    7.sub()
    re.sub()用来修改、删除文本。

    import re
    content='a1b2c3d4e5f6g7'
    A=re.sub('d+','',content)
    print(A)
    结果:abcdefg
    

    8.compile()
    把正则字符串编译成正则表达式对象,以便在后面中复用。
    content='zifuchuan'
    pattern=re.compile('正则表达式')
    re.search(pattern,content)

    欢迎关注我~会经常更新Webspider与数据分析挖掘方面的文章,技术! 谢谢~

  • 相关阅读:
    hdu5360 Hiking(水题)
    hdu5348 MZL's endless loop(欧拉回路)
    hdu5351 MZL's Border(规律题,java)
    hdu5347 MZL's chemistry(打表)
    hdu5344 MZL's xor(水题)
    hdu5338 ZZX and Permutations(贪心、线段树)
    hdu 5325 Crazy Bobo (树形dp)
    hdu5323 Solve this interesting problem(爆搜)
    hdu5322 Hope(dp)
    Lightoj1009 Back to Underworld(带权并查集)
  • 原文地址:https://www.cnblogs.com/xubin97/p/10334720.html
Copyright © 2011-2022 走看看