• $ python正则表达式系列(1)——正则元字符


    本文主要介绍python中正则表达式的基本用法,做一个初步的认识。

    1. 初识

    python通过re内置模块来处理正则表达式(regex),底层使用C引擎。一个简单的正则匹配的例子:

    import re
    # 正则
    p = re.compile(r'[a-zA-Z0-9]')
    s = 'hello 123, world!'
    print re.findall(p,s)
    
    # 输出:
    # ['h', 'e', 'l', 'l', 'o', '1', '2', '3', 'w', 'o', 'r', 'l', 'd']
    

    元字符:所谓元字符,指的是那些不仅仅可以表示字符本身含义、并且还可以表示其他特殊含义的字符。正则中的元字符主要有如下这些:

    . ^ $ * + ? { } [ ] | ( )

    要在正则中匹配元字符本身,需要使用转义符号,比如如果要匹配"+"符号,则在正则中要写成:"+".

    2. 正则元字符含义解释

    1. [ ]

    (1) 常用来指定一个字符集,如[abc]匹配:a或b或c

    (2) 元字符在"[]"中不起所用,比如:[a+]匹配:a或+

    但注意:在方括号中要匹配转义符“”本身,要用:"\";要匹配方括号开头的"^"符本身,要用:"^";要匹配"-"字符,需要用:"-"

    (3) 补集匹配:[^a],匹配非a的一个字符

    (4) 匹配连续字符:[a-zA-Z0-9],匹配大小写英文字母和数字

    2. ^

    匹配行首,在MULTILINE模式中,直接匹配字符串中的每一个换行。

    3. $

    匹配行尾,行尾是指:字符串尾,或一个换行字符后的任何位置。

    4.

    转义字符,如果要匹配""本身,需要使用再次转义:"\"。

    一些特殊字符:

    d:匹配:[0-9]

    D:匹配:[^0-9]

    s:匹配:任何空白符,即:[ fv]

    S:匹配:任何非空白符,即:[^ fv]

    w:匹配:[a-zA-Z0-9_ ]

    W:匹配:[^a-zA-Z0-9_ ]

    5. *

    匹配前一个字符或子表达式出现0次或多次。

    6. +

    匹配前一个字符或子表达式出现1次或多次。

    7. ?

    (1) 匹配前一个字符或子表达式出现1次或0次。

    (2) 表示非贪婪匹配:

    import re
    # 贪婪模式,会尽量多地去匹配
    r1 = re.compile(r'ab+')
    s1 = 'abbb'
    print re.findall(r1,s1)
    
    # 非贪婪模式,会尽量少地去匹配
    r2 = re.compile(r'ab+?')
    s2 = 'abbb'
    print re.findall(r2,s2)
    
    # 输出:
    '''
    ['abbb']
    ['ab']
    '''
    

    8. {}

    匹配前一个字符或子表达式出现指定次数:

    • {0,}:0次或多次,相当于"*"

    • {1,}:1次或多次,相当于"+"

    • {0,1}:0次或1次,相当于"?"

    • {m,n}:m次到n次(m <= n)

  • 相关阅读:
    Windows8.1 + Nvidia cuda8.0 + Vs2015
    读《鲜花帝国》有感
    oracle-sql书写
    oracle--聚合函数和case when结合使用
    oracle正则表达式
    oracle中case when使用
    oracle分区表之列表分区
    linux下oracl字符集修改(WE8ISO8859P1 --> ZHS16GBK)
    linux 下安装oracle数据库
    oracle学习笔记
  • 原文地址:https://www.cnblogs.com/jiayongji/p/7118946.html
Copyright © 2020-2023  润新知