zoukankan      html  css  js  c++  java
  • 正则表达式-re模块

    导入import re

    python中通过re模块来处理正则表达式。re模块的常用方法如下:

    re.match(re规则,字符串):从头开始匹配。从字符串的第一个字符开始匹配,如果第一个字符不匹配规则,那么匹配失败。

    match(pattern, string, flags=0)

    re.search(re规则,字符串):匹配包含。不要求从字符串的第一个字符就匹配。只要字符串当中有匹配该规则的,则就匹配成功。

    search(pattern, string, flags=0)

    re.findall(re规则,字符串):把所有匹配的字符放在列表中并返回。

    findall(pattern, string, flags=0)

    re.sub(re规则,替换串,被替换字符串):匹配字符并替换。

    sub(pattern, repl, string, count=0, flags=0)

    正则常用规则1:

    '.' 匹配除“ ”之外的任何单个字符
    '^' 匹配字符开头
    '$' 匹配字符结尾
    '*' 匹配*前面的字符0次 或多次
    '+' 匹配前一个字符1次 或多次
    '?' 匹配前一个字符0次 或1次
    '{m}' 匹配前一个字符m次

    >>> import re
    >>> re.match('.','abdfffhhh123')
    <_sre.SRE_Match object; span=(0, 1), match='a'>
    >>> re.match('.','abcfffhhh123').group()
    'a'
    >>> re.match('.*','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 12), match='abcfffhhh123'>
    >>> re.match('^a.*3$','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 12), match='abcfffhhh123'>
    >>> re.match('a.*5$','abcfffhhh123')
    
    >>> re.search('f*','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 0), match=''>
    >>> re.search('^af*','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 1), match='a'>
    >>> re.match('af*','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 1), match='a'>
    >>> re.match('af+','abcfffhhh123')
    >>> re.match('.*f+','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 6), match='abcfff'>
    >>> re.match('.*f?','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 12), match='abcfffhhh123'>
    
    >>> re.match('af{3}.*','abcfffhhh123')
    >>> re.match('.*f{3}','abcfffhhh123')
    <_sre.SRE_Match object; span=(0, 6), match='abcfff'>
    >>> 

    正则常用规则2:

    'd' 匹配一个数字字符
    'D' 匹配一个非数字字符
    'w' 匹配包含下划线的任何单词字符。等价于”[A-Z a-z 0-9 _]“
    'W' 匹配任何非单词字符
    '(pattern)' 匹配pattern并获取这一匹配
    '[a-z]' 字符范围。匹配指定范围内的任意字符
    '[xyz]' 字符集合。匹配所包含的任意一个字符

    >>> re.search('d','123abc')
    <_sre.SRE_Match object; span=(0, 1), match='1'>
    >>> re.search('d{3}','123abc').group()
    '123'
    >>> re.search('D','123abc').group()
    'a'
    >>> re.search('w{5}','123_abc@@###').group()
    '123_a'
    >>> re.search('W','123abc@@@###').group()
    '@'
    >>> re.findall('(d{2})','12abd55ggg')
    ['12', '55']
    >>> re.findall('[abc]','12abd55ggg')
    ['a', 'b']
    >>> re.findall('[0-9]','12abd55ggg')
    ['1', '2', '5', '5']
    >>> re.findall('[0-9][abc]','12abd55ggg')
    ['2a']
    >>> re.search('(d).*','abcfffhhh1235,ab478').group()
    '1235,ab478'
    >>> re.search('(d).*','abcfffhhh1235,ab478').group(1)
    '1'

    正则表达式手册参考:http://tool.oschina.net/uploads/apidocs/jquery/regexp.html



  • 相关阅读:
    单例模式的八种写法
    反射
    工厂模式
    Java内存分配、管理小结
    Java 反射(二)
    Java反射
    servlet的web-xml配置详解
    substr和substring的区别
    C/C++中extern关键字详解
    lua总则
  • 原文地址:https://www.cnblogs.com/simran/p/9485610.html
Copyright © 2011-2022 走看看