码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python 正则表达式


    1、提取字符串的场景及公式、命令

    背景:目前遇到的场景主要是以某个字符串开始、某个字符串结束,提取中间部分的字符,有的时候需要开始的字符,有时不需要,大概涉及到了4种情况,场景及处理方式如下:

    1.1 以某个字符开始、某个字符结束,期待的提取结果包含首末字符串

            提取公式:a = re.findall("开始字符串.*末字符串",str)

    1.2 以某个字符开始、某个字符结束,期待的提取结果不包含末字符串,但包含首字符串

            提取公式:a = re.findall("开始字符串.*?(?=末字符串)",str)

            例子:提取文本中的所有时间,如图

            提取命令:

            time = re.findall("202.*?(?=,)",content)  # 也就是提取以202开头的,逗号结束的,且不包括逗号的

    1.3 以某个字符开始、某个字符结束,期待的提取结果不包含首字符串,但包含末字符串:

            提取公式:a = re.findall("(?<=开始字符串).*末字符串",str)

    1.4 以某个字符开始、某个字符结束,期待的提取结果不包含首、末字符串:

            提取公式1:a = re.findall("(?<=开始字符串).*?(?=末字符串)",str)

            提取公式2:a = re.findall(".*开始字符串(.*)末字符串*",str)

    例子:提取mocro_step的数据值,前面是固定字符micro_step=,后面是固定字符/global_step,如图:

           提取命令:

        micro_step = re.findall("(?<=micro_step=).*?(?=/global_step)", content)  # case4 方法1

        micro_step = re.findall(".*micro_step=(.*)/global_step*", content)  # case4方法2

    1.5 起始字符串不固定(即从首字符串提取到固定的字符串结束),用^指定从首字符串开始

            提取公式:a = re.findall('^.*结束字符串',str)

    2、特殊字符-需要转义

    2.1 需要转义的特殊字符

    2.2  转义符举例:提取r值也就是以字符串lr=[开头,逗号结尾之间的字符串,如图:

    提取命令: learning_rate = re.findall(".*lr=\[(.*?), *", content)

    提取结果:

            -1.0274676347695078e-07

    3、总结一下知识点,主要涉及了这几种情况

            a、提取的字符串需要包含起始字符串--上面的1.1

            b、提取的字符串不需要包含起始字符串--上面的1.2~1.4

            c、提取到的字符串如果匹配到多个,只截取到第一个,不要后面的部分

                     解决办法:使用?

            d、提取到的字符串如果匹配到多个,要匹配到的全部的字符串

                    解决办法:使用*

    4、参考文章

    Python正则表达式,这一篇就够了! - 知乎

    python通过正则匹配指定字符开头与结束提取中间内容_python匹配字符串中间的文字-CSDN博客

    Python正则表达式及常用匹配_python 正则表达式匹配_Sicc1107的博客-CSDN博客

    python正则表达式--RE模块(转义r 和 \,贪婪模式与非贪婪模式) - 知乎

    利用python 正则 读取txt文件中指定字符之间的数据,并保存到excel中_python txt 某两行中间的数据_洛星尘pro的博客-CSDN博客

  • 相关阅读:
    windows查看电脑配置
    学习笔记18--汽车模型之汽车动力学
    计算机毕业设计Java的自助旅游导航系统(源码+系统+mysql数据库+lw文档)
    leetcode做题笔记242. 有效的字母异位词
    Unity之ShaderGraph如何实现飘动的红旗
    可观测性-Metrics-系统CPU、进程CPU指标
    Windows卸载Nessus与安装Nessus
    源码部署ELK日志分析管理系统
    java基于springboot+vue动物诊所综合管理系统
    go面试题 腐烂的苹果(橘子、水果)
  • 原文地址:https://blog.csdn.net/qq_29707567/article/details/133271885
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号