zoukankan      html  css  js  c++  java
  • python五十七课——正则表达式(多个字符)


    演示匹配多个字符:
    以下x、y、n都是变量名:
    分类:
    1).模糊匹配:

    x?:表示0个或者1个 取值范围:[0,1]
    x+:表示1个或者多个 取值范围:[1,无穷大)
    x*:表示0个或者多个 取值范围:[0,无穷大)
    【注意】
    以上三种符号(?、+、*)都满足贪婪匹配的特点,
    意味着在匹配的前提下,尽可能多的返回数据
    思考:如果取消贪婪行为? --> 达到的效果就是在匹配的前提下,尽可能少的返回数据
    代码体现:在正则的最后显示的定义一个?即可
    2).精确匹配:
    n{x}:n匹配x次
    n{x,}:n最少有x次,最多无穷大 范围:[x,无穷大)
    n{x,y}:n最少有x次,最多有y次 范围:[x,y]
    import re
    str1='bbbbbbbbbbbcccbbbb'
    print(re.search(r'b?',str1).group())
    print(re.search(r'b??',str1).group())
    print(re.search(r'b+',str1).group())
    print(re.search(r'b+?',str1).group())
    print(re.findall(r'b?',str1))
    print(re.findall(r'b?',str1))
    print(re.findall(r'b+',str1))
    print(re.findall(r'b+?',str1))
    print(re.findall(r'b*',str1))
    print(re.findall(r'b*?',str1))
    
    #需求:尝试匹配内容:hank ... man
    str1='hank is a good man hank is a nice man hank is a cool man'
    regex=r'hank.*man'
    # regex=r'hank.*?man'
    lt=re.findall(regex,str1)
    print(lt)
    print(re.search(regex,str1).group())
    print('实现精准匹配...')
    
    str1='aaaabbbaaaaaaaaaaaa'
    print(re.findall(r'a{3}',str1))
    print(re.findall(r'a{3,}',str1))
    print(re.findall(r'a{3,}?',str1))
    print(re.findall(r'a{6,8}',str1))
    print(re.findall(r'a{6,8}?',str1))


    返回目录
  • 相关阅读:
    C++ handle(句柄类) part2
    C++代理类的使用
    第一个blog
    C++ Handle(句柄) part1
    关于理想团队的构建和对软件流程的理解
    提供就医帮助的安卓APP
    上海地铁游移动APP需求分析
    关于学习了《构建之法》的若干存在疑惑的问题
    安卓APP开发简单实例 结对编程心得
    Vue修改Vue项目运行端口号(CLI2)
  • 原文地址:https://www.cnblogs.com/hankleo/p/10503918.html
Copyright © 2011-2022 走看看