Python中re模块的简介与相关函数

import re

#pip 包管理模块

'''

1:re.match函数

原型:match(pattern, string, flags=0)

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

        flags的值如下:

        (常)re.I(忽略大小写) 

        re.L(做本地化识别)

        (常)re.M(多行匹配,影响^和$)

        (常)re.S(时.匹配包括换行符在内的所有字符)

        re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

        re.X(使我们以更灵活的格式理解正则表达式))

功能:尝试从字符串的起始位置匹配一个模式,如果不是起始位置(从字符串0索引开始)匹配成功的话,返回None

        即:匹配的模式必须在字符串的开头

#www.baidu.com

#扫描整个字符串,返回从起始位置成功的匹配

print(re.match('www','www.baidu.com'))#能找到,返回一个对象,和www在的索引

print(re.match('www','ww.baidu.com'))#不能找到返回None

print(re.match('www','baidu.wwwcom'))#不能找到返回None

'''

'''

2:re.search函数

原型:search(pattern, string, flags=0)

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

        flags的值如下:

        (常)re.I(忽略大小写) 

        re.L(做本地化识别)

        (常)re.M(多行匹配,影响^和$)

        (常)re.S(时.匹配包括换行符在内的所有字符)

        re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

        re.X(使我们以更灵活的格式理解正则表达式))

功能:扫描整个字符串,并返回第一个成功的匹配

print(re.search('www','baidu.wwwcom'))##能找到,返回一个对象,和www在的索引

'''

'''

re.findall函数

原型:findall(pattern, string, flags=0)

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

        flags的值如下:

        (常)re.I(忽略大小写) 

        re.L(做本地化识别)

        (常)re.M(多行匹配,影响^和$)

        (常)re.S(时.匹配包括换行符在内的所有字符)

        re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

        re.X(使我们以更灵活的格式理解正则表达式))

功能:扫描整个字符串,并返回结果列表(可以匹配多个数据)

print(re.findall('www','www.baidu.www.com'))

'''

import re

re.subn

'''

'''

'''

1:字符串切割

str1='sunck is a good man'

print(str1.strip(' '))

print(re.split(r' +',str1))

2:字符串的替换和修改

re.sub()

re.sunb()

'''

'''

'''

'''

1:re.finditer函数

原型:finditer(pattern, string, flags=0)

参数:pattern:匹配的正则表达式,string:要匹配的字符串,flages:标志位,用于控制正则表达式的匹配方式

        flags的值如下:

        (常)re.I(忽略大小写) 

        re.L(做本地化识别)

        (常)re.M(多行匹配,影响^和$)

        (常)re.S(时.匹配包括换行符在内的所有字符)

        re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

        re.X(使我们以更灵活的格式理解正则表达式))

功能:于findall类似,扫描整个字符串,返回的是一个迭代器

2:re.sub函数和re.subn函数

原型:sub(pattern, repl, string, count=0, flags=0)

    :subn(pattern, repl, string, count=0, flags=0)

参数:pattern:匹配的正则表达式,repl:指定的要替换的字符串,string:目标字符串,count:最大替换次数,flages:标志位,用于控制正则表达式的匹配方式

        flags的值如下:

        (常)re.I(忽略大小写) 

        re.L(做本地化识别)

        (常)re.M(多行匹配,影响^和$)

        (常)re.S(时.匹配包括换行符在内的所有字符)

        re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

        re.X(使我们以更灵活的格式理解正则表达式))

功能:在目标字符串中以正则表达式的规则匹配字符串,在把他们替换成指定字符串,可以指定替换次数,如果不指定,就会替换匹配到的所有的字符串

    区别:sub返回一个被替换的字符串

         subn返回一个元组,第一个元素是被替换的字符串,第二个元素表示被替换的次数

分组:

概念:除了简单的判断是否匹配之外

    正则表达式还有提前子串的功能,用()表示的就是提取分组


    str='010-53247654'

    m=re.match(r'(?P\d{3})-(\d{8})',str)

    #使用序号获取对应组的信息,group(0)一直代表的原始字符串

    #?P写在组中给组起名

    print(m.group(0))

    print(m.group(1))

    print(m.group(2))

    #查看匹配的各组情况

    print(m.groups())

编译:

概念:当我们使用正则表达式时,re模块会干两件事

    1:编译正则表达式,如果正则表达式本身不合法,会报错

    2:用编译后的正则表达式去匹配对象

编译函数:

    re.compile函数

    原型:compile(pattern, flags=0)

    参数:pattern:要编译的正则表达式

        flages:标志位,用于控制正则表达式的匹配方式

        flags的值如下:

        (常)re.I(忽略大小写) 

        re.L(做本地化识别)

        (常)re.M(多行匹配,影响^和$)

        (常)re.S(时.匹配包括换行符在内的所有字符)

        re.U(根据Unicode字符集字符,影响\w,\W,\b,\B)

        re.X(使我们以更灵活的格式理解正则表达式))

    功能:

    #编译成正则对象,编译完后都可以通过编译对象(re对象)来调用match,search等re函数

    pat=r'^1(([3578]\d)|(47)\d{8}$'

    re_telephone=re.compile(pat)


    #编译完后的运用,相当于调用re函数时少了正则表达式的输入

    re_telephone.match(str)

'''

re.compile()

你可能感兴趣的:(Python中re模块的简介与相关函数)