zoukankan      html  css  js  c++  java
  • Day6_正则表达式

    用作匹配数据的方法:

    print(re.findall('w','yangshuai 123 asd 
     	'))
    #w:匹配字母数字下划线
    print(re.findall('W','yangshuai 123 asd | 
     	'))
    #W:匹配非字母数字下划线 print(re.findall('s','yangshuai 123 asd '))
    #s:匹配任意空白字符,等价于[ ] print(re.findall('S','yangshuai 123 asd '))
    #S:匹配任意非空字符 print(re.findall('d','yangshuai 123 asd '))
    #d:匹配任意数字 print(re.findall('D','yangshuai 123 asd '))
    #D:匹配任意非数字 print(re.findall('y','yangshuai 123 yasd '))
    #匹配任意单个字符 print(re.findall('^y','yangshuai 123 yasd '))
    #只匹配开头的单个值
    print(re.findall('y','yangshuai 123 yasd '))
    #匹配结尾的单个值

    # .  []   [^]

    .: 本身代表任意一个字符
    print(re.findall('a.c','a a1c a*c abc a c aaaaac aacc'))

    #[]内部可以有多个字符,但是本身只匹配字符中的一个
    print(re.findall('a[1 2 3]c','a a1c a*c abc a c aaaaac aacc'))
    #匹配+-*/ 的时候最好加上转移符号 ,例如+-*/

    转义:
    print(re.findall(r'a\c','a a1c a*c abc ac aaaaac aacc'))
    #这里的话如果不加r,匹配一个需要加入4个\\
    #如果这里加r,匹配一个需要加入两个\

    #? * + {}

    #? 左边的哪一个字符有0个或者1个
    print(re.findall('ab?','a ab abb abbb abbbb bbbb'))

    #* 左边的字符有0个或者无穷个
    print(re.findall('ab*','a ab abb abbb abbbb bbbb'))

    #+左边的哪一个字符有1个或者无穷个
    print(re.findall('ab+','a ab abb abbb abbbb bbbb'))

    #{n,m}左边的字符有n-m次
    print(re.findall('ab{3}','a ab abb abbb abbbb bbbb'))

    .*   .*?

    .* :贪婪匹配
    print(re.findall('a.*c','a ab abb abbb abbbb bbbb'))

    .*? :非贪婪匹配
    print(re.findall('a.*?c','a123c456c'))

    | :#当匹配左边不成功的情况下,会匹配右边的情况
    print(re.findall('company|companies','sadsdsd fasffa company companies'))

    () :分组,只显示()内的内容
    print(re.findall('ab+','ababababab123'))
    print(re.findall('ab+123','ababababab123'))
    print(re.findall('(a)b','ababababab123'))

    ?:  :取得是匹配成功后所有的内容

    print('(?:ab)','ababababab123')

    #re的其他方法:

    findall:找出所有的匹配的值

    search:从开头开始匹配,当匹配成功了就不往后继续了。

    用法:print(re.search('ab','abababab123').group)

    必须加上.group,不加上group的话是一段内存地址。

    match: 从头去找,匹配的第一个值不是寻找的内容,然后就直接略过

    用法:print(re.match('ab','abababab123').group)

    split: 以想要的内容作为切分

    用法:print(re.split('b','abcde'))

    sub:将匹配到的内容替换为指定的内容

    subn:将匹配到的内容替换为指定的内容,替换几次

    print(re.sub('alex','SB','alex make love alex alex'))

    #将所匹配的内容全部替换

    print(re.subn('alex','SB','alex make love alex alex',1))

    #将所匹配到的内容替换几次

    也可以这样用,按段匹配数据,然后做位置置换。

    print(re.sub('(w+)( .* )(w+)',r'321','alex make love'))

  • 相关阅读:
    软件工程学习总结
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业--字符串处理
    第10次作业
    找回感觉的练习
    基础网络流学习笔记
    卷积定理的证明
    快速xxx变换相关
    主席树相关
  • 原文地址:https://www.cnblogs.com/sexiaoshuai/p/7326600.html
Copyright © 2011-2022 走看看