• re模块、分组在re模块的使用


    一、re模块

    1、findall(" 正则表达式","str" )

    1 import re
    2 s="sdsa1212dasda212sa2d"
    3 ret=re.findall("d+",s)
    4 print(ret)

    结果返回一个列表


    2、search(" 正则表达式","str" )

    1 ret=re.search("d+",s)  #匹配字符串中第一个出现的符合表达式的结果(不一定在开头)
    2 print(ret.group())

    返回结果用.group查看


    3、match("正则表达式","str")

    1  ret=re.match("d+",s) #字符串的开头必须是符合正则表达式的 否则返回None
    2  print(ret)

    4、split 切割

    1 ret=re.split("d+",s)   #从符合表达式的位置切,返回的是列表
    2 print(ret)

    5、compile("正则表达式"),将正则表达式进行一次编译,可以多次使用编译结果

    1 ret=re.compile("d+") ret作为编译结果直接使用
    2 res=ret.findall(s) #直接使用正则表达式的编译结果
    3 print(res)

    6、finditer("d+",str) 返回一个迭代器,节省内存

    1 ret=re.compile("d+")
    2 res=ret.finditer(s)
    3 for i in res:
    4      print(i.group())


    二、分组在模块中的使用

    1、findall( ) :优先返回在( )里的内容,如果都加括号,则返回一个装在列表里的元组,否则把优先的匹配结果放在元组里返回一个列表

    1 s = '<a>wahaha</s>'
    2 ret = re.findall('<(w+)>(w+)</w+>',s)

    2、search():单个优先没有作用,全部的正则表达式加( )后根据  .group(1,2,3)选择的返回哪一组优先

    s = '<a>wahaha</s>'
    ret = re.search('<(w+)>(w+)</(w+)>', s)
    print(ret.group())
    print(ret.group(1))
    print(ret.group(2))
    print(ret.group(3))

    3、split():当正则表达式加上() 后会把切割的字符也一起返回一个列表里

    1 s = '<a>wahaha</s>'
    2 ret = re.split('(d+)','alex83taibai40egon25')
    3 print(ret)

    4、分组命名:(?P<这个组的名字>正则表达式)   print(ret.group('con'))

    1 s = '<a>wahaha</a>'
    2 ret = re.search('>(?P<con>w+)<',s)
    3 print(ret.group(1))
    4 print(ret.group('con'))
    1 s = '<a>wahaha</a>'
    2 pattern = '<(w+)>(w+)</(w+)>'
    3 ret = re.search(pattern,s)
    4 print(ret.group(1) == ret.group(3))

    5、使用前面的分组 要求使用这个名字的分组和前面同名分组中的内容匹配的必须一致    

    1 pattern = '<(?P<tab>w+)>(w+)</(?P=tab)>'
    2 ret = re.search(pattern,s)
    3 print(ret)
  • 相关阅读:
    html 一号店静态页面
    多线程
    TCP通信
    MySQL连接查询
    Mysql数据库 DDL 数据定义语言
    MySQL数据库 DML 数据操作语言
    java字符流
    java File类
    java变量
    JDK、JRE、JVM的关系
  • 原文地址:https://www.cnblogs.com/liaopeng123/p/9494654.html
Copyright © 2020-2023  润新知