美文网首页
04-re模块方法

04-re模块方法

作者: 阅心_5cc2 | 来源:发表于2018-08-04 08:44 被阅读0次
import re
if __name__ == '__main__':

    # 1.compile(正则字符串) 将正则表达式字符串转换成正则表达式对象
    # 转换成正则表达式对象后,可以通过对象调用相关的方法
    re_obct = re.compile(r'\w{6,12}')
    print(re_obct.fullmatch('ahsjjs'))
    print(re.fullmatch(r'\w{6,12}', 'ahjhjs'))

运行结果如下:

<re.Match object; span=(0, 6), match='ahsjjs'>
<re.Match object; span=(0, 6), match='ahjhjs'>
    # 2.fullmatch(正则表达式, 字符串) 完全匹配,从字符串开头匹配到结尾
    # 返回值是匹配对象, 如果匹配失败返回None
    match = re.fullmatch('\w{3}', 'h3s')
    print(match)
    # a.获取匹配到的结果
    print(match.group())
    # b.获取匹配到的范围
    print(match.span())
    # c.获取匹配到的开始下标和结束下标
    print(match.start(), match.end())
    # d.获取被匹配的字符串(原字符串)
    print(match.string)

    # 应用:判断一个字符串是否是某种字符串(判断账号、密码是否符合要求等)

运行结果如下:

<re.Match object; span=(0, 3), match='h3s'>
h3s
(0, 3)
0 3
h3s

    # 3.match(正则表达式, 字符串) 不完全匹配,从字符串开头开始匹配,匹配到正则表达式对应的范围为止
    # 返回值是匹配对象, 如果匹配失败返回None
    match = re.match(r'\w{3}', 'h3shhhhsbs')
    print(match)
    print(match.group())
    print(match.string)

    # 应用: 判断一个字符串是否以某种字符串开头

运行结果如下:

<re.Match object; span=(0, 3), match='h3s'>
h3s
h3shhhhsbs
    # 4.search(正则表达式, 字符串) 在指定的字符串中查找某种字符串(以正则表达式来描述),如果有过个满足条件的,只匹配第一个
    # 返回值是匹配对象,如果找不到符合要求的返回None
    print(re.search(r'\d{2,}[a-z]', 'sh23n--8a7a7m0899'))

    # 应用:判断一个字符串中是否包含某种字符串

运行结果如下:

<re.Match object; span=(2, 5), match='23n'>
    # 5.findall(正则表达式, 字符串) 去获取指定字符串中满足正则条件的所有的子串
    # 返回值是列表,列表中是符合要求的字符串。没有满足要求的子串就返回[]
    result = re.findall(r'[a-zA-Z](\d+)', '12a123buy=236ok98s')
    print(result)

    # 注意:在通过正则表达式获取子串的时候,可以通过在正则表达式中添加括号,来约束获取的内容(只捕获括号中匹配到的内容)
    #      匹配的时候还是按原正则表达式去查找

    # 应用:字符串提取

运行结果如下:

['123', '98']
    # 6.finditer(正则表达式, 字符串) 用法和findall一样,只是返回值的类型不一样
    # 返回一个迭代器,迭代器中的内容是匹配对象
    # 注意:()捕获部分无效
    result = re.finditer(r'[a-zA-Z](\d+)', '12a123buy=236ok98s')
    for match in result:
        print(match)

    # print('ahsj27jkkaj7js8jsj'.split('sj'))

运行结果如下:

<re.Match object; span=(2, 6), match='a123'>
    # 7.split(正则表达式, 字符串) 按正则表达式匹配到的字符串进行切割
    # 返回值是列表,列表元素就切割后被分段的字符串
    result = re.split(r'[\[\]*\-]', 'a[hsj27]jkkaj*7js8-jsj')
    print(result)

运行结果如下:

<re.Match object; span=(14, 17), match='k98'>
    # 8.sub(正则表达式,新字符串, 原字符串)  在原字符串中查找符合正则的子串,替换成新的字符串
    # 返回值是替换后的字符串
    """将指定字符串中所有'sb'替换成'*'"""
    str1 = '你好sb,你全家都是sb,傻叉,你是不是傻,手机上叉'
    result = re.sub(r'sb|傻叉|傻', '*', str1)
    print(str1, result)

运行结果如下:


['a', 'hsj27', 'jkkaj', '7js8', 'jsj']
你好sb,你全家都是sb,傻叉,你是不是傻,手机上叉 你好*,你全家都是*,*,你是不是*,手机上叉


相关文章

  • 04-re模块方法

    运行结果如下: 运行结果如下: 运行结果如下: 运行结果如下: 运行结果如下: 运行结果如下: 运行结果如下: 运...

  • day15正则表达式

    01-正则表达式的符号 02-正则表达式符号组合 03-正则表达式 04-re模块方法

  • Python3-模块(Module) amd 包(Package

    模块(Module):单个Py文件。 导入模块:导入方法1import 模块名1,模块名2,模块名3导入方法2 ...

  • 多线程Threading介绍

    【threading模块详解】 模块基本方法 该模块定了的方法如下:threading.active_count(...

  • 使用require()方法加载模块&模块作用域&module对象

    使用require()方法加载模块 模块作用域在自定义模块中的方法,变量等,只能在当前模块内被访问,这种模块级别的...

  • python调试模块pdb

    调试python代码 pdb模块使用方法一: pdb模块使用方法2:

  • Python OS模块常用方法总结

    Python OS模块常用方法总结Python OS模块方法:操作 说明os.g...

  • ruby中include, extend, prepend比较

    include是把模块注入目标类或者模块中作为实例方法prepend也是是把模块注入目标类或者模块中作为实例方法他...

  • Python中的模块与包

    目标 了解模块 导入模块 制作模块 __all__ 包的使用方法 一. 模块 Python 模块(Module),...

  • Day13 作业

    1.常用的math模块中的方法 2.常用的calendar模块中的方法 3.常用的time模块中的方法 4.常用的...

网友评论

      本文标题:04-re模块方法

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