美文网首页
正则表达式

正则表达式

作者: Vsion8980 | 来源:发表于2018-08-23 15:01 被阅读0次

    Python中包含正则表达式的模块。

    使用前先导入正则表达式模块:

    import re
    

    语法:

    re.match 从头开始匹配
    re.search 匹配包含
    re.findall 把所有匹配到的字符放到以列表中的元素返回
    re.splitall 以匹配到的字符当做列表分隔符
    re.sub 匹配字符并替换

    • '.' 默认匹配除\n之外的任意一个字符
    >>> re.search(".","hello world!")
    <_sre.SRE_Match object; span=(0, 1), match='h'>
    
    • '^'   匹配字符开头

       注意:“字符开头”指要匹配的字符串的开头。

    >>> re.search("^h","hello world!")
    <_sre.SRE_Match object; span=(0, 1), match='h'>   # <---输出结果
    >>> re.search("^a","hello world!")      ##<---无结果输出(不匹配)
    
    • '$' 匹配字符结尾,同上‘^’
    >>> re.search("!$","hello world!")
    <_sre.SRE_Match object; span=(11, 12), match='!'>
    
    • '*' 匹配*号前的字符0次或多次

        " * " 号前若有多个字符,语法只对前一个字符有效

    >>> re.search("ll*","hello world!")
    <_sre.SRE_Match object; span=(2, 4), match='ll'>
    
    >>> re.findall("ab*","cabb3abcbbac")
    ['abb', 'ab', 'a']
    
    
    • '+' 匹配前一个字符1次或多次
    >>> re.findall("ab+","ab+cd+abb+bba")
    ['ab', 'abb']
    
    • '?' 匹配前一个字符1次或0次
    >>> re.findall("ab?","ab+cd+abb+bba")
    ['ab', 'ab', 'a']
    
    • '{m}' 匹配前一个字符m次
    >>> re.search("hel{2}","hello world!")
    <_sre.SRE_Match object; span=(0, 4), match='hell'>
    
    • '{n,m}' 匹配前一个字符n到m次
    >>> re.findall("ab{1,3}","abb abc abbcbbb")
    ['abb', 'ab', 'abb']
    
    • '|' 匹配|左或|右的字符
    >>> re.search("abc|ABC","ABCBabcCD").group()
    'ABC'
    
    • '(...)' 分组匹配
    >>> re.search("(abc){2}a(123|456)c", "abcabca456c").group()
    'abcabca456c'
    
    • '\A' 只从字符开头匹配--同‘^’
    • '\Z' 匹配字符结尾--同$
    • '\d' 匹配数字0-9
    >>> re.search('\d','today20180823')
    <_sre.SRE_Match object; span=(5, 6), match='2'>
    
    • '\D' 匹配非数字
    >>> re.search('\D','today20180823')
    <_sre.SRE_Match object; span=(0, 1), match='t'>
    
    • '\w' 匹配[A-Za-z0-9]

    • '\W' 匹配非[A-Za-z0-9]

    • 's' 匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'

    • '(?P<name>...)' 分组匹配

    >>> re.search("(?P<date>[0-9]{4})(?P<school>[0-9]{4})(?P<id>[0-9]{4})","201603041073").groupdict()
    {'date': '2016', 'id': '1073', 'school': '0304'}
    

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/iekpiftx.html