• Python学习之旅(二十五)


    Python基础知识(24):正则表达式

    正则表达式:检查一个字符串是否与某个模式匹配

    d :匹配数字

    w :匹配字母或数字

    . :匹配任意字符

    {n} :匹配n个字符

    {m,n} :匹配m到n个字符

    s :匹配空格

    a|b :匹配a或b

    ^ :匹配字符串开头

    $ :匹配字符串结尾

    * :匹配0个或多个

    + :匹配1个或多个

    ? :匹配0个或1个

    [abc] :匹配a、b或c

    [^abc] :匹配除了a、b、c以外的

    re模块:包含正则表达式的所有功能

    建议使用Python的r前缀,如r‘d’

    由于Python的字符串本身也用转义,所以要特别注意

    1、match:匹配字符串

    import re
    m
    = re.match(r'd{3}-d{3,8}',r'010-23456') print(m)

    结果:
    <_sre.SRE_Match object; span=(0, 9), match='010-23456'>

    2、search:扫描

    import re
    
    s = re.search(r'(.com)',r'someone@gmail.com')
    print(s)
    
    结果:
    <_sre.SRE_Match object; span=(13, 17), match='.com'>

    3、split:切分字符

    import re
    
    s = re.split(r'[\,]',r'hello,world')
    print(s)
    
    结果:
    ['hello', 'world']

    4、sub:替换

    import re
    
    sen = 'Hello2018, 12world06.'
    sen1 = re.sub(r'd', '', sen)
    print(sen1)
    
    结果:
    Hello, world.

    5、group:分组

    import re
    
    sen = re.match(r'^(d{3})-(d{3,8})$', '010-23456')
    print(sen.group(0))
    print(sen.group(1))
    print(sen.group(2))
    
    结果:
    010-23456
    010
    23456

    验证Email地址的正则表达式

    #验证Email地址的正则表达式
    import re
    
    sen1 = r'someone@gmail.com'
    sen2 = r'bill.gates@microsoft.com'
    sen3 = r'bob#example.com'
    sen4 = r'mr-bob@example.com'
    m = r'[w.]+@[w]+.(com)'
    print(re.match(m,sen1))
    print(re.match(m,sen2))
    print(re.match(m,sen3))
    print(re.match(m,sen4))
    
    结果:
    <_sre.SRE_Match object; span=(0, 17), match='someone@gmail.com'>
    <_sre.SRE_Match object; span=(0, 24), match='bill.gates@microsoft.com'>
    None
    None

    资料来源:

    1、廖雪峰官网:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193331387014ccd1040c814dee8b2164bb4f064cff000

    2、菜鸟教程:http://www.runoob.com/python3/python3-reg-expressions.html

  • 相关阅读:
    Annotation
    injector
    Java容器(container)
    build tool(构建工具)maven和gradle安装方法
    version control(版本控制)
    函数式编程
    URI与URL
    超文本传输协议HTTP
    annotation的理解
    Injection
  • 原文地址:https://www.cnblogs.com/finsomway/p/10075470.html
Copyright © 2020-2023  润新知