zoukankan      html  css  js  c++  java
  • RE模块使用

    import re

    match

    li = re.match('d*', '12821j128j312893j129') # match方法,先使用正则表达式,然后传入待查字符串
    print(li) # 结果对象 <_sre.SRE_Match object; span=(0, 5), match='12821'>
    if li:
    print(li.group()) # 获得数据12821 ,如果没有就会报错

    # 如果没有,就无操作
    # 所有的match方法都认为是以。。。开头
    re.match('d+') # 相当于^d+

    re.search('d+','12821j128j312893j129') 
    li = re.match('d*', '12821j128j312893j129') 
    #这两行效果相同

    match可以被替换

    search

    li = re.search('d*', '12821j128j312893j129') # 在文本中查找
    print(li) # 结果对象 <_sre.SRE_Match object; span=(0, 5), match='12821'>
    if li:
    print(li.group()) # 获得数据12821 ,如果没有就会报错

    findall

    li = (re.findall('d*', '12821j128j312893j129'))
    # 查找所有的符合规则的字符串,并添加到列表中
    print(li) # 结果对象 <_sre.SRE_Match object; span=(0, 5), match='12821'>
    if li:
    print(li.group) # 获得所有匹配规则的数据

    sub

    ret = re.sub('d+', 'sb', 'alex,wsir123', 1) # z将字符串的内容替换出来
    print(ret)
    # 替换数字类型为sb,替换一次,如果不给这个 1,默认替换所有符合条件的

    subn

    print(re.subn('d+', 'sb', 'alex,wsir123')) # 用法与sub相同,但是这个的返回值是一个元组,结果和替换了几次

    split

    print(re.split('d+', 'alex,wsir123', ))
    # 如果对正则表示中使用分组,那么分组中的内容也会被保存在列表中
    # 用法与字符串的相同,以符合条件的当切割条件

    compile 

    用来提前加载要使用的正则表达式

    par = re.compile('d+') # 将写好的正则表达式进行编译,还有可以直接调用
    
    par.finditer('d', 'asdfaf')
    # 迭代器,处理数据量比较大的,这个迭代器中存的是结果集

    特别注意:

    ret = """
    <h1>hahaha<h1>
    <h2>wahaha<h2>
    <title>qqxing<	itle>
    """
    
    res = re.findall('>(w+)<', ret)
    print(res) # 一个列表,内容为hahaha,wahaha,qqxing
    # findall总是优先显示分组()中的内容
    
    res = re.findall('>(?:w+)<', ret)
    # ?:表示取消这个分组优先,正常显示
    ret = re.search(r'<(?P<tab1>w+)>(?P<content>w+)<\(w+)>', '<title>qqxing<\title>')
    # ?P表示对分组起名
    
    ret = re.search(r'<(?P<tab1>w+)>(?P<content>w+)</(?P=tab1)>', '<title>qqxing</title>')
    # (?P=tab1) 直接在这里引用这个分组
    
    
    ret = re.search(r'<(w+)>(w+)<\(w+)>', '<title>qqxing<\title>')
    print(ret.group()) # <title>qqxing<	itle>
    print(ret.group(1)) # title
    print(ret.group(2)) # qqxing
    print(ret.group(3)) # 	itle
  • 相关阅读:
    JDK版本1.6和6.0到底指什么
    分布式存储Memcache替代Session方案
    Spring事务隔离级别和传播特性
    高性能并发系统架构应该如何设计?关键是什么?12306
    Idea无法DEBUG的问题
    springboot(三 使用mybatis +springboot 完成简单的增删改查)
    springboot(二 如何访问静态资源和使用模板引擎,以及 全局异常捕获)
    spring boot (入门简介 demo)
    java1.8新特性(optional 使用)
    java1.8 新特性(关于 match,find reduce )操作
  • 原文地址:https://www.cnblogs.com/mk-lovefreedom/p/10578276.html
Copyright © 2011-2022 走看看