zoukankan      html  css  js  c++  java
  • 在python中使用正则表达式

    一.转义符

      1.在python中的转义符

        (1)\n与 的区别

        (2)r" ext" 通过r来进行转义

        (3)"\\d"与"\d"的组合

      2.在正则表达式中的转义符

        (1)\n   表示匹配 这个字符

        (2)[(), +, *,/, ., ?, $]  这些符号在[]中会现原形

        (3)"("  表示匹配(这个符号

    二 re模块

      1.字符串匹配

        (1)re.findall("正则表达式", "字符串")       返回一个列表,返回的内容为 匹配到的所有内容,如果没有匹配到内容返回[].

        (2)re.search("正则表达式", "字符串")     返回匹配到结果的对象,如果没有匹配到内容返回None

        (3)re.match("正则表达式", "字符串")       返回内容同上search,但是在字符串开头必须匹配到内容,如果开头没匹配到返回None

      2.替换和切割

        (1)re.sub("正则表达式", "替换的内容", "字符串",个数(默认全部替换))   返回一个被替换过的字符串

        (2)re.subn("正则表达式", "替换的内容", "字符串",个数(默认全部替换))   返回一个元组,返回内容为被替换过 的字符串和替换的个数

      3.进阶方法

        (1)re.compile("正则表达式")    (时间效率)  节省时间:只有多次使用某一个相同的正则表达式时才使用

        (2)re.findter("正则表达式", "字符串")  返回一个迭代器,通过for循环可得到匹配到的所有结果的对象.再使用group()打印用每个结果

    三.正则表达式在python中使用的一些特殊用法

      1.findall+分组     优先显示分组里的内容,要想取消分组优先,要在分组中加(?:)

      2.search+分组 通过group(n),可以得到group()匹配到的内容

      3.split+分组   保留分组内被分割掉的内容

      4.分组命名   

          (1).

    ret = re.search("<(?P<name>w+)>w+</(?P=name)>", "<a>hahaha</a>")
    print(ret.group())
    print(ret.group("name"))
    print(ret.group(1))
    # print(ret.group(2))
    ret = re.search(r"<(w+)>w+</1>", "<a>hahaha</a>")
    print(ret.group())
    print(ret.group(1))
    View Code

    四.random模块

      1.随机小数

        (1).random.random()  0-1范围内的随机小数

        (2)random.uniform(1,5)任意范围内的随机小数

      2.随机整数

        (1)random.randint(1,2)           [1,2]包含2在内的范围内随机整数

        (2)random.randrange(1,2)     [1,2) 不包含2在内的范围内的随机整数

        (3)random.randrange(1,10,2)    [1,10)不包含10在内的范围内的随机奇数

      3.随机抽取

        (1)random.choice(list)   随机从列表中抽取一个值

        (2)random.sample(lst,n)   随机抽取n个值

        (3)random.stuffle(list)   在原列表的基础上做乱序

    随机抽取
    随机抽取一个值
    lst = [1,2,3,'aaa',('wahaha','qqxing')]
    ret = random.choice(l)
    print(ret)
    随机抽取多个值
    ret = random.sample(lst,2)
    print(ret)
    
    打乱顺序  在原列表的基础上做乱序
    lst = [1,2,3,'aaa',('wahaha','qqxing')]
    random.shuffle(lst)
    print(lst)
     def rand_code(n=6 , alph_flag = True):
         code = ''
         for i in range(n):
             rand_num = str(random.randint(0,9))
             if alph_flag:
                 rand_alph = chr(random.randint(97,122))
                 rand_alph_upper = chr(random.randint(65,90))
                 rand_num = random.choice([rand_num,rand_alph,rand_alph_upper])
             code += rand_num
         return code
    
     ret = rand_code(n = 4)
     print(ret)
    View Code
  • 相关阅读:
    第14.15节 爬虫实战1:使用Python和selenium实现csdn博文点赞
    第14.14节 爬虫实战准备:csdn博文点赞过程http请求和响应信息分析
    第14.13节 BeautifulSoup的其他功能导览
    Mina源码阅读笔记(四)—Mina的连接IoConnector1
    H3C SecPath F100-C 防火墙配置说明
    基于数据仓库星形模式的广东省高速公路一张网资金结算情况分析系统
    祝贺自己的软件《万能数据库查询分析器》在中关村在线下载量超过10万次
    DB Query Analyzer has been downloaded more than 100,000 times
    图像处理程序框架—MFC相关知识点
    Graph Cuts学习笔记2014.5.16----1
  • 原文地址:https://www.cnblogs.com/hu13/p/9439638.html
Copyright © 2011-2022 走看看