zoukankan      html  css  js  c++  java
  • 正则表达式基本用法

      喜欢我的博客可以加关注,有问题可以提问我。

      首先,我们来看看基本的正则表达式有哪些:

      1.最常规的匹配(匹配所有的字符)

    import re
    content = 'Hello 123 4567 World_this is a Regex Demo'
    print(len(content))
    result = re.match('^Hellosdddsd{4}sw{10}.*Demo$',content)
    print(result)
    print(result.group())
    print(result.span())

      2.范匹配

    import re
    content = 'Hello 123 4567 World_this is a Regex Demo'
    result = re.match('^Hello.*Demo$',content)
    print(result)
    print(result.group())
    print(result.span())
    
    结果:
    <_sre.SRE_Match object; span=(0, 41), match='Hello 123 4567 World_this is a Regex Demo'>
    Hello 123 4567 World_this is a Regex Demo
    (0, 41)

      3.匹配目标

    import re
    content = 'Hello 1234567 World_this is a Regex Demo'
    result=re.match('^Hellos(d+)sWorld.*Demo$',content)
    print(result)
    print(result.group(1))
    print(result.span())
    
    结果:
    <_sre.SRE_Match object; span=(0, 40), match='Hello 1234567 World_this is a Regex Demo'>
    1234567
    (0, 40)

      4.贪婪匹配

    import re
    content = 'Hello 1234567 World_this is a Regex Demo'
    result=re.match('^He.*(d+).*Demo$',content)
    print(result)
    print(result.group(1))
    
    结果:
    <_sre.SRE_Match object; span=(0, 40), match='Hello 1234567 World_this is a Regex Demo'>
    7

      5.非贪婪匹配

    import re
    content = "Hello 1234567 World_this is a Regex Demo"
    result=re.match('^He.*?(d+).*Demo$',content)
    print(result)
    print(result.group(1))
    
    结果:
    <_sre.SRE_Match object; span=(0, 40), match='Hello 1234567 World_this is a Regex Demo'>
    1234567

      6.匹配模式

    import re
    content = 'Hello 1234567 World_this 
    is a Regex Demo'
    result=re.match('^He.*?(d+).*Demo$',content,re.S)
    print(result)
    print(result.group(1))
    print(content)
    
    结果:
    <_sre.SRE_Match object; span=(0, 41), match='Hello 1234567 World_this 
    is a Regex Demo'>
    1234567
    Hello 1234567 World_this 
    is a Regex Demo

      7.转义

    import re
    content = 'price is $5.00'
    result=re.match('price is $5.00',content)
    print(result)
    
    结果:None
    
    import re
    content = 'price is $5.00'
    result=re.match('price is $5.00',content)
    print(result)
    
    结果:<_sre.SRE_Match object; span=(0, 14), match='price is $5.00'>

      8.re.search

    import re
    content = 'Extra stings Hello 1234567 World_this is a Regex Demo Extra stings'
    result=re.match('Hello.*?(d+).*Demo',content)
    print(result)
    
    结果:None
    
    import re
    content = 'Extra stings Hello 1234567 World_this is a Regex Demo Extra stings'
    result=re.search('Hello.*?(d+).*Demo',content)
    print(result)
    print(result.group(1))
    
    结果:
    <_sre.SRE_Match object; span=(13, 53), match='Hello 1234567 World_this is a Regex Demo'>
    1234567
  • 相关阅读:
    ASP.NET MVC 2 RC 2 发布
    [备忘]XCode快捷键
    ASP.NET MVC v2 Priview 2发布
    Senparc.com Google Sitemap Builder v1.0提供免费定制服务申请
    [备忘]SQL Server 字符集更改
    ASP.NET MVC脚手架辅助工具——MvcScaffoldTool v2.0版本发布,支持Area自动映射
    [备忘]SQL Server 2005数据库varchar插入中文出现乱码的一种可能及解决办法
    [备忘]苹果系统MAC OS X 10.5.6 (雪豹 snowleopard 10.5.6) 启用root方法
    准备好好看看《编程珠玑》
    格式化输入/输出
  • 原文地址:https://www.cnblogs.com/zll20153246/p/9632662.html
Copyright © 2011-2022 走看看