zoukankan      html  css  js  c++  java
  • 3.2.2 正則表達式的功能(1)

    re.search(pattern, string, flags=0)

    从一个字符串string不论什么位置開始匹配正則表達式的字符串pattern。匹配成功返回match对象,假设不成功返回None

    flags是上面介绍的相关标志。

    样例:

    print('re.search')

    result = re.search('mycard+','testmycar007 mycar008 ')

    if result:

        print(result)

    结果输出例如以下:

    re.search

    <_sre.SRE_Match object; span=(4, 12), match='mycar007'>

     

    re.match(pattern, string, flags=0)

    从字符串string開始位置对正則表達式pattern进行0个或多个字符进行匹配,假设匹配成功返回match对象。假设匹配不成功返回None。值得注意是,当多行标志re.MULTILINE起作用时。re.match()仅仅匹配字符串最開始的字符,而不会匹配换行符開始的字符。假设你想搜索一个字符串任何位置開始的匹配,应使用re.search()。

    样例:

    print('re.match')

    result = re.match('mycard+','mycar007 mycar008 ')

    if result:

        print(result)

    result = re.match('tmycard+','mycar007 mycar008 ')

    if result:

        print(result) 

    结果输出例如以下:

    re.match

    <_sre.SRE_Match object; span=(0, 8), match='mycar007'>

     

    re.fullmatch(pattern, string, flags=0)

    这种方法当整个字符串string与正則表達式匹配时返回match对象。否则返回None。此方法不存在部分匹配。

    样例:

    print('re.fullmatch')

    result = re.fullmatch('mycar007','mycar007')

    if result:

        print(result)

        

    result = re.fullmatch('mycar007','mycar007 ')

    if result:

        print(result)

    结果输出例如以下:

    re.fullmatch

    <_sre.SRE_Match object; span=(0, 8), match='mycar007'>

     

     

    re.split(pattern, string, maxsplit=0, flags=0)

    依据正則表達式来切割字符串string。假设採用分组模式的正則表達式,那么分隔符作为一组,返回在列表中。假设maxsplit为非零数值,那么把字符串最多切割为maxsplit个元素,剩余的所有组成一个元素。

    样例:

    print('re.split')

    result = re.split('W+','Cai, cai, cai.')

    if result:

        print(result)

    result = re.split('(W+)','Cai, cai, cai.')

    if result:

        print(result)

        

    result = re.split('W+','Cai, cai, cai.', 1)

    if result:

        print(result)

    result = re.split('W+','Cai, cai, cai.', 2)

    if result:

        print(result)

    结果输出例如以下:

    re.split

    ['Cai', 'cai', 'cai', '']

    ['Cai', ', ', 'cai', ', ', 'cai', '.', '']

    ['Cai', 'cai, cai.']

    ['Cai', 'cai', 'cai.']

     

     

    re.findall(pattern, string, flags=0)

    查找返回非反复匹配的字符串元素的列表。

    从左向右搜索字符串string,当有匹配成功时,就生成一个列表元素。

    样例:

    print(r'(.+) 1')

    m = re.findall(r'(.+) 1', r'abc abc abcabc 55 56 57 57')

    if m:

        print(m) 

    结果输出例如以下:

    (.+) 1

    ['abc', '5', '57']

     

     

    re.finditer(pattern, string, flags=0)

    在字符串string里按正則表達式pattern来匹配。返回匹配成功的迭代子iterator对象。匹配过程是从字符串string从左向右匹配,当匹配成功之后,就返回对应的对象。当没有匹配成功字符串,就返回空对象。

    样例:

    print('re.finditer')

    for i  in re.finditer('abc', 'abc, abc1, abc2'):

        print(i)

    结果输出例如以下:

    re.finditer

    <_sre.SRE_Match object; span=(0, 3), match='abc'>

    <_sre.SRE_Match object; span=(5, 8), match='abc'>

    <_sre.SRE_Match object; span=(11, 14), match='abc'>

     

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

    在字符串string中依据正則表達式pattern匹配,假设匹配成功。就使用repl替换对应的字符串,匹配完毕后返回替换后的字符串。count是表示替换最多替换多少个,0是不限。当中repl也能够替换函数,传入一个匹配对象的參数,返回替换的字符串。

    样例:

    print('re.sub')

    result = re.sub('cai', 'replace','Cai, cai, cai.')

    if result:

        print(result)

     

    def myrepl(matchobj):

        if matchobj.group(0) == 'cai': return 'OK'

        else: return '#'

    result = re.sub('cai', myrepl, 'Cai, caicai, cai.',1)

    if result:

        print(result)
    结果输出例如以下:

    re.sub

    Cai, replace, replace.

    Cai, OKcai, cai.

     

    re.subn(pattern, repl, string, count=0, flags=0)

    这种方法的功能与方法sub同样。仅仅只是返回元组对象。元组使用这种格式(新字符串,多少个替换)。

    样例:

    print('re.subn')

    result = re.subn('cai', 'replace','Cai, cai, cai.')

    if result:

        print(result)

    结果输出例如以下:

    re.subn

    ('Cai, replace, replace.', 2)

     

    re.escape(string)

    本方法是把所有非ASCII字符、数字和下划线以外字符改动为转义方式,也就是加入反斜线在前面。

    样例:

    print('re.escape')

    result = re.escape('cai')

    if result:

        print(result)

    result = re.escape('cai----_3721中国')

    if result:

        print(result)

    结果输出例如以下:

    re.escape

    cai

    cai----_3721

     

    re.purge()

    清除正則表達式的内部缓存。

    样例:

    print('re.purge()')

    result = re.compile('caid')

    print(result)

    re.purge()

    print(result)

    结果输出例如以下:

    re.purge()

    re.compile('cai\d')

    re.compile('cai\d')

     

    异常re.error

    编译一个正則表達式不合法时,会抛出异常错误。

    样例:

    print('re.error')

    try:

        result = re.compile('(caid')

    except re.error as error:

        print('re:',str(error))

    结果输出例如以下:

    re.error

    re: unbalanced parenthesis



    蔡军生 QQ:9073204 深圳

  • 相关阅读:
    第十次作业
    第八次作业
    作业七--1
    作业五
    作业六
    作业四
    作业一
    作业三
    作业2
    jsp第一次作业
  • 原文地址:https://www.cnblogs.com/llguanli/p/8433280.html
Copyright © 2011-2022 走看看