一篇文章详细讲解正则表达式库和第三方库

作者:

文章目录
  • 正则表达式是一种表达式语句,用于对字符串类型数据进行操作,包含从字符串中筛选出满足表达式条件的信息、将字符串中的内容进行替换等功能,在python语言中用re库实现正则表达式,用import将re库导入代码程序中。
  • 到此这篇关于正则表达式库和第三方库的文章就介绍到这了,更多相关正则表达式库和第三方库内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: JS正则表达式大全(整理详细且实用) javascript 手机号码正则表达式验证函数 正则表达式基本语法详解
  • 目录
    • 一、正则表达式库
      • 1.匹配字符串
        • match()函数
        • search()函数
        • findall()函数
      • 2.正则表达式
        • 表示字符范围:
        • 表示字符出现次数:
        • 表示同一类字符:
      • 3.贪婪模式和非贪婪模式
        • 4.或和组
          • 5.sub()和compile()方法
          • 二、第三方库
            • 1.第三方库的介绍
              • 2.不同领域的第三方库
                • 3.第三方库的安装
                  • 4.安装报错的解决方法
                    • 5.pip工具的常用命令
                      • 6.Pyinstaller库
                        • 1.Pyinstaller库的介绍和安装
                        • 2.使用
                        • 3.其他Pyinstaller命令
                    • 总结 

                      正则表达式是一种表达式语句,用于对字符串类型数据进行操作,包含从字符串中筛选出满足表达式条件的信息、将字符串中的内容进行替换等功能,在python语言中用re库实现正则表达式,用import将re库导入代码程序中。

                      在re模块中,re.match(参数1, 参数2)会尝试从字符串的第一个字符开始匹配指定模式,只有当模式在字符串起始位置完全匹配时才返回参数1的内容,否则返回None。

                      使用形式:

                      match(参数1,参数2)

                      示例:

                      import re
                      # 从起始位置匹配成功​
                      print(re.match(r'abc', 'abcdef'))  #输出为 <re.Match object; span=(0, 3), match='abc'>​
                      # 非起始位置有匹配但返回None​
                      print(re.match(r'cde', 'abcdef'))  #输出为 None

                      search()函数的功能是在整个字符串中查找第一个匹配项。search()会从字符串的起始位置开始对比,直到找到第一个符合的子串,然后返回包含匹配成功的信息;如果遍历完整个字符串仍未找到匹配,则返回None。

                      使用形式:

                      search(参数1,参数2)

                      示例:

                      import re
                      # 查找第一个数字序列​
                      text = '用户ID: 12345, 订单号: 67890'​
                      match = re.search(r'd+', text)​
                      if match:​
                          print(f"找到匹配: {match.group()}")  # 找到匹配: 12345​
                          print(f"匹配位置: {match.span()}")    # 匹配位置: (6, 11)

                      使用形式:

                      findall(参数1,参数2)

                       功能是从参数2(字符串类型数据)中查找满足参数1(正则表达式)的内容,如果匹配了多个参数1,则返回匹配成功的全部信息。

                      示例:

                      import re
                      text = '用户A: 13800138000, 用户B: 13900139000, 用户C: 13700137000'
                      # 提取所有手机号
                      phones = re.findall(r'1[3-9]d{9}', text)
                      print(phones)  # ['13800138000', '13900139000', '13700137000']

                       正则表达式 (Regular Expression) 是一种强大的文本处理工具,它通过定义特定模式来匹配、查找和替换文本。在 Python 中,无论是标准库re还是第三方库regex,都提供了丰富的 API 支持,使开发者能够高效处理各种复杂的文本场景。本文将从基础语法到高级应用,系统介绍 Python 中正则表达式的核心概念、使用技巧及最佳实践。

                      [abc]  # 匹配a、b或c中的任意一个字符
                      [^abc] # 匹配除a、b、c之外的任意字符
                      [a-z]  # 匹配任意小写字母
                      [A-Z]  # 匹配任意大写字母
                      [0-9]  # 匹配任意数字
                      [a-zA-Z0-9] # 匹配任意字母或数字

                      ^      # 匹配字符串的起始位置
                      $      # 匹配字符串的结束位置
                      *      # 匹配前面的子表达式零次或多次
                      +      # 匹配前面的子表达式一次或多次
                      ?      # 匹配前面的子表达式零次或一次
                      {n}    # 精确匹配n次
                      {n,}   # 至少匹配n次
                      {n,m}  # 匹配至少n次且最多m次

                      d     # 等价于[0-9],匹配任意数字
                      D     # 等价于[^0-9],匹配任意非数字字符
                      s     # 等价于[tnrfv],匹配任意空白字符(空格、制表符、换行符等)
                      S     # 等价于[^tnrfv],匹配任意非空白字符
                      w     # 等价于[a-zA-Z0-9_],匹配任意字母、数字或下划线
                      W     # 等价于[^a-zA-Z0-9_],匹配任意非字母、数字或下划线字符
                      a*     # 匹配零个或多个a(如:'', 'a', 'aa', 'aaa'等)
                      a+     # 匹配一个或多个a(如:'a', 'aa', 'aaa'等)
                      a?     # 匹配零个或一个a(如:'', 'a')
                      a{3}   # 精确匹配3个a(如:'aaa')
                      a{3,}  # 匹配至少3个a(如:'aaa', 'aaaa', 'aaaaa'等)
                      a{3,5} # 匹配3到5个a(如:'aaa', 'aaaa', 'aaaaa')

                      默认情况下,量词是贪婪的,即尽可能多地匹配字符。通过在量词后添加?,可以将其变为非贪婪模式,即尽可能少地匹配字符:

                      示例:

                      text = '<div>内容</div>'
                      # 贪婪匹配(默认)
                      re.findall(r'<.*>', text)  # 结果: ['<div>内容</div>']
                      # 非贪婪匹配
                      re.findall(r'<.*?>', text) # 结果: ['<div>', '</div>']

                      在 Python 正则表达式中,"或"和 "组"是构建复杂模式的两大核心机制。"或" 允许在模式中定义多个可选分支,而 "组" 则用于将多个字符作为一个整体处理,并支持捕获匹配内容。

                      "或" 操作符(|)的用法与特性

                      在正则表达式中,竖线|用于表示 "或" 关系,允许匹配多个模式中的任意一个。示例:

                      import re
                      pattern = re.compile(r'apple|banana')  # 匹配apple或banana
                      text = 'I like apple and banana'
                      print(pattern.findall(text))  # ['apple', 'banana']

                       "或" 操作符的优先级较低,通常需要用括号进行分组以明确匹配范围,多个分支按从左到右的顺序进行匹配,一旦找到匹配项就停止搜索。因此,较长或更具体的模式应放在前面,在字符类[]内部,|表示普通字符而非 "或" 操作符。

                      "组"的类型与应用

                      使用()定义的捕获组会保存匹配的子串,可通过索引或名称引用

                      示例:

                      # 数字索引引用
                      pattern = re.compile(r'(d{4})-(d{2})-(d{2})')
                      text = '2023-10-05'
                      match = pattern.match(text)
                      print(match.group(1))  # '2023'(年)
                      # 命名组引用
                      pattern = re.compile(r'(?P<year>d{4})-(?P<month>d{2})-(?P<day>d{2})')
                      print(match.group('month'))  # '10'

                      多层嵌套时,索引按左括号出现的顺序分配,在模式内部使用12等语法引用前面的捕获组,使用(?:)定义的非捕获组仅用于分组,不保存匹配结果。

                      sub()用于替换字符串中的匹配项,示例:

                      text = 'Hello 123, World 456'
                      pattern = re.compile(r'd+')
                      print(pattern.sub('NUM', text))  # 'Hello NUM, World NUM'

                      compile()re模块中的核心函数,用于创建预编译的模式对象:

                      import re
                      # 编译正则表达式
                      pattern = re.compile(r'正则表达式模式')
                      # 使用模式对象进行匹配
                      match = pattern.search('待匹配的文本')

                      在 Python 的技术生态中,第三方库是连接基础语法与实际应用的桥梁。这些由全球开发者社区贡献的代码集合,将 Python 的灵活性与扩展性发挥到极致,使其能够轻松应对从简单脚本到复杂系统的各类开发需求。本文将从定义本质、分类体系、技术价值和选择框架四个维度,全面剖析 Python 第三方库的核心特征。

                      数据科学与分析领域:从采集到可视化的全流程工具

                      人工智能与机器学习领域:从模型训练到部署的全链路支持

                      自动化与运维领域:从脚本到系统的效率工具

                      科学计算与工程领域:从仿真到可视化的专业工具

                      游戏开发与创意编程领域:从 2D 到 3D 的开发工具

                      Python 第三方库的生态之所以强大,在于其覆盖了几乎所有技术领域的解决方案。从 Web 开发到人工智能,从数据分析到嵌入式开发,每个领域都形成了各具特色的库集群。本文将深入剖析六大主流领域的核心库,解析其技术特点、适用场景及选型策略,为开发者提供全面的工具选择参考。

                      Web 开发领域:从后端到前端的全栈工具链​

                      常见的有2种:

                      通过win+r输入cmd打开命令指示符后写入以下形式:

                      pip install 库名
                      

                       但这样通常下载很慢,因为这里用的是外网,可以通过搜索中国网站下载库会快很多。

                      例如:pip install  库名称 -i https://pypi.tuna.tsinghua.edu.cn/simple

                      再一种就是通过pycharm的解释器下载第三方库,与上述方法差不多。

                       搜索所需要的第三方库,可以在选项中输入中国网站加快下载速度。

                      1.操作系统缺失支撑软件

                      解决方法:通过error错误提示下载缺失的支撑软件。

                      2.计算机的操作系统版本与第三方库的版本之间存在不兼容的情况。

                      解决方法:使用命令:

                      pip install 库名 == 版本号

                      3.pip工具版本过低。

                      解决方法:通过命令:

                      python -m pip install --upgrade pip

                       更新当前pip工具。

                      pip uninstall 库名 #卸载库
                      pip list        #列出所有已安装的库
                      pip show 库名 #查看特定库的详细信息
                      pip download 库名 #下载第三方库安装包但不安装
                      -h  #获取pip使用帮助

                      PyInstaller 是一个开源的 Python 库,能够将 Python 脚本打包成独立的可执行文件(.exe、.app 等),无需目标机器安装 Python 解释器或相关依赖库。其工作原理是分析脚本的依赖关系,将 Python 解释器、脚本本身及所有依赖文件打包到一个文件夹或单个可执行文件中,实现 "一次打包,到处运行" 的效果。

                      打开命令提示符(CMD)或 PowerShell​执行安装命令:

                      # 使用pip安装最新版本
                      pip install pyinstaller
                      
                      # 如需指定版本(例如5.13.2)
                      pip install pyinstaller==5.13.2

                      PyInstaller 的命令结构简洁明了,核心语法为:

                      pyinstaller 代码文件路径+代码文件名

                      -F:

                      使打包后只产生一个list文件夹,且文件夹中只存在一个打包后的可执行文件。

                      pyinstaller -F 代码文件路径+代码文件名

                      -i:

                      用于指定可执行文件图标的实用参数,在程序窗口中添加图标。

                      pyinstaller -i 代码文件路径+代码文件名

                      到此这篇关于正则表达式库和第三方库的文章就介绍到这了,更多相关正则表达式库和第三方库内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

                      您可能感兴趣的文章:

                      • JS正则表达式大全(整理详细且实用)
                      • javascript 手机号码正则表达式验证函数
                      • 正则表达式基本语法详解

                      站内搜索