该模块通过正则表达式匹配数据。

目前支持的操作符较少,部分操作符暂不支持。

示例:

import ureres = '''
$GNRMC,133648.00,A,3149.2969,N,11706.9027,E,0.055,,311020,,,A,V*18
$GNGGA,133648.00,3149.2969,N,11706.9027,E,1,24,1.03,88.9,M,,M,,*6C
$GNGLL,3149.2969,N,11706.9027,E,133648.00,A,A*7A
$GNGSA,A,3,31,26,11,194,27,195,08,09,03,193,04,16,1.41,1.03,0.97,1*31
'''r = ure.search("GNGGA(.+?)M", res)
print(r.group(0))

编译并生成正则表达式对象

ure.compile

ure.compile(regex)

用于编译正则表达式,生成一个正则表达式对象,供 match() 和 search() 这两个函数使用。

参数描述:

  • regex - 正则表达式,字符串类型。

匹配

ure.match

ure.match(regex, string)

将正则表达式对象 与 string 匹配,匹配通常从字符串的起始位置进行。

参数描述:

  • regex - 正则表达式,字符串类型。

  • string - 需要匹配的字符串数据。

返回值描述:

  • 匹配成功返回一个匹配的对象,否则返回None。

查找

ure.search

ure.search(regex, string)

扫描整个字符串并返回第一个成功的匹配。

参数描述:

  • regex - 正则表达式,字符串类型。

  • string - 需要查找的字符串数据。

返回值描述:

  • 匹配成功返回一个匹配的对象,否则返回None。

匹配单个字符串

match.group

match.group(index)

匹配 match() 和 serach() 方法返回的对象。

参数描述:

  • index - 整型,正则表达式中,group()用来提出分组截获的字符串, index=0返回整体,根据编写的正则表达式进行获取,当分组不存在时会抛出异常。

返回值描述:

  • 返回匹配的整个表达式的字符串。

常量

支持的操作符

  • ‘.’ - 字符类型,匹配任意字符。

  • ‘[]’ - 字符类型,匹配字符集合,支持单个字符和一个范围,包括负集。

  • ‘^’ - 字符类型,匹配字符串的开头。

  • ‘$’ - 字符类型,匹配字符串的结尾。

  • ‘?’ - 字符类型,匹配零个或前面的子模式之一。

  • ‘*’ - 字符类型,匹配零个或多个先前的子模式。

  • ‘+’ - 字符类型,匹配一个或多个先前的子模式。

  • ‘??’ - 字符类型,非贪婪版本的 ? ,匹配0或1。

  • ‘*?’ - 字符类型,非贪婪版本的*,匹配零个或多个。

  • ‘+?’ - 字符类型,非贪婪版本的+,匹配一个或多个。

  • ‘\|’ - 字符类型,匹配该操作符的左侧子模式或右侧子模式。

  • ‘\d’ - 字符类型,数字匹配。

  • ‘\D’ - 字符类型,非数字匹配。

  • ‘\s’ - 字符类型,匹配空格。

  • ‘\S’ - 字符类型,匹配非空格。

  • ‘\w’ - 字符类型,匹配”单词字符” (仅限ASCII)。

  • ‘\W’ - 字符类型,匹配非“单词字符”(仅限ASCII)。

不支持的操作符

  • ‘{m,n}’ - 重复次数。

  • ‘(?P<name>...)’ - 命名组。

  • ‘(?:...)’ - 非捕获组。

  • ‘\b’ - 更高级的断言。

  • ‘\B’ - 更高级的断言。

  • ‘\r’ - 特殊字符转义,改用Python自己的转义。

  • ‘\n’ - 特殊字符转义,改用Python自己的转义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90018.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90018.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/90018.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT窗口(3)-状态栏

QT窗口&#xff08;3&#xff09;-状态栏 状态栏 代码如下&#xff1a;//存在就获取&#xff0c;不存在就创建QStatusBar*statusBarthis->statusBar();this->setStatusBar(statusBar);//显示一个临时消息statusBar->showMessage("这是一个状态消息");运行结…

更具个性的域名:解锁互联网多元价值的钥匙

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

深度学习模块实践手册(第十一期)

46、缩放点积注意力模块论文《Attention Is All You Need》1、作用&#xff1a; 缩放点积注意力&#xff08;Scaled Dot-Product Attention&#xff09;是 Transformer 模型的核心组件&#xff0c;旨在解决序列建模中长距离依赖关系捕捉的问题。传统的循环神经网络&#xff08;…

C++高级技术详解

C高级技术详解 目录 模板 (Templates)右值和移动语义 (Rvalue and Move Semantics)定位 new (Placement new)强类型 (Strong Types)智能指针 (Smart Pointers)容器和算法 (Containers and Algorithms)Lambda表达式常量表达式 (constexpr)多线程和并发 (Multithreading and Co…

跨境卖家紧急自查,Endryko Karmadi四季版画版权维权

25年7月2日&#xff0c;Keith律所代理印尼艺术家Endryko Karmadi发起全新版权维权行动。案件基本情况&#xff1a;起诉时间&#xff1a;2025-7-2案件号&#xff1a;25-cv-07436品牌&#xff1a;Endryko Karmadi Work原告&#xff1a;Endryko Karmadi 原告律所&#xff1a;keith…

M3088NL是一款网络滤波器/变压器支持100M和1000M网络环境,适用于高速网络传输场景M3088

M3088NL是一款网络滤波器/变压器&#xff0c;主要特点如下&#xff1a;兼容性 支持100M和1000M网络环境&#xff0c;适用于高速网络传输场景。 ‌封装形式 采用SOP/SOIC封装&#xff0c;便于电路集成。 ‌应用场景 常用于网络电话、开关电源等需要稳定电流的设备&#xff0c;符…

PyQt动态布局管理器:QSplitter详细指南

PyQt动态布局管理器&#xff1a;QSplitter详细指南 QSplitter简介 在PyQt中&#xff0c;除了常见的QVBoxLayout、QHBoxLayout等静态布局管理器外&#xff0c;QSplitter提供了一种动态布局解决方案。QSplitter允许用户通过拖拽分隔条来实时调整控件大小&#xff0c;为应用程序提…

Java设计模式之行为型模式(备忘录模式)实现方式详解

最近看到一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 一、基础实现结构 角色定义与代码骨架 备忘录模式包含三个核心角色&#xff0c;其协作关系如下&#xff1a; Originator&#xff08;发起人&…

k8s:离线部署tomcatV11.0.9,报Cannot find /opt/bitnami/tomcat/bin/setclasspath.sh

本文记录了在离线环境下部署Tomcat容器时遇到的权限问题及解决方案。在Docker环境中运行Tomcat时出现&quot;找不到setclasspath.sh&quot;错误&#xff0c;通过添加--security-opt seccompunconfined参数解决。在Kubernetes环境中部署时出现相同问题&#xff0c;通过设置…

Linux操作系统之线程(五):线程封装

目录 前言 一、线程ID及进程地址空间布局 二、线程栈与线程局部存储 三、线程封装 总结&#xff1a; 前言 我们在上篇文章着重给大家说了一下线程的控制的有关知识。 但是如果我们要使用线程&#xff0c;就得那这pthread_create接口直接用吗&#xff1f;这样岂不是太过麻…

【物理与机器学习】从非平衡热力学到扩散模型

[toc] 0.引子:从非平衡热力学开始 1.架构简介 2.反向过程的具体推导与 DDPM 改进摘要&#xff1a;扩散模型将非平衡热力学的“噪声注入—去噪逆转”理念注入生成建模中。DDPM&#xff08;Denoising Diffusion Probabilistic Models&#xff09;在 SD2015 的基础上&#xff0c;通…

Git常用命令详解:从入门到精通

前言 Git作为当今最流行的分布式版本控制系统&#xff0c;已经成为开发者必备的技能之一。无论你是独立开发者还是团队协作&#xff0c;掌握Git的基本操作都能极大提高工作效率。本文将详细介绍Git的常用命令&#xff0c;帮助你快速上手并精通Git的基本使用。 一、Git基础概念…

Vue-22-通过flask接口提供的数据使用plotly.js绘图(一)

文章目录 1 任务背景 2 Flask提供接口(server.py) 2.1 原始代码 2.2 跨域问题 3 Vue3获取数据并渲染Plotly图表 3.1 新建工程 3.2 程序 3.2.1 index.html(入口) 3.2.2 cpmponents/Plot.vue(子组件) 3.2.3 App.vue(父组件) 3.2.4 main.ts 3.3 展示 4 选择图表类型绘图 4.1 App.v…

【mysql】换主键

需求&#xff1a;曲库表的主键错了&#xff0c;原先设置的是(sang_id),应该设置为&#xff08;sang_name,singer&#xff09;联合主键。-- &#xff08;0&#xff09;先备份数据&#xff0c;我这里没备份 -- &#xff08;1&#xff09;进行主键的切换之前&#xff0c;要进行一些…

Redis原理之缓存

上篇文章&#xff1a; Redis原理之集群https://blog.csdn.net/sniper_fandc/article/details/149141342?fromshareblogdetail&sharetypeblogdetail&sharerId149141342&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 Redis作为MySQL…

关于集合的底层数据结构

单列集合Collection分为list集合和set集合list集合分为ArrayList和LinkedListArrayList--底层数据结构是数组1.通过索引查询快2.增删要重构索引,增删慢 LinkedList--底层数据结构是链表1.无索引查询慢2.通过改变前节点的尾指针和后节点的前指针指向可快速增删,增删快set集合(…

批量插入技巧:减少事务提交次数的性能提升

一、事务提交成本分析每次事务提交触发‌磁盘I/O同步‌&#xff08;WAL机制&#xff09;、‌日志写入‌和‌锁资源释放‌操作&#xff0c;高频独立提交会产生指数级开销‌。实验表明&#xff1a;MySQL提交1万次单条插入比单次批量插入‌慢20倍以上‌‌。高频提交还加剧锁竞争与…

importlib.import_module() 的用法与实战案例

&#x1f31f; 一、什么是 importlib&#xff1f; importlib 是 Python 的一个内置标准库&#xff0c;用于在程序运行时 动态导入模块。 &#x1f524; 对比&#xff1a;普通 import vs importlib方式示例特点静态导入import os编写代码时就确定要导入的模块动态导入importlib.…

Oracle 12c 创建数据库初级教程

1. 连接到Oracle sqlplus / as sysdba Oracle数据库名称默认为ORCL或sqlplus /ORCL as sysdba Oracle数据库名称默认为ORCL2. 创建表空间&#xff08;数据库&#xff09; create user YOUR_USERNAME identified by "YOUR_PASSWORD"; YOUR_USERNAME为数据库名称和登…

zabbix服务器告警处理

zabbix服务器告警&#xff0c;信息为&#xff1a;Utilization of poller processes over 75%处理办法为修改zabbix_server.conf配置文件&#xff0c;一般情况下为/etc/zabbix目录下。根据自己轮询器的类型修改对应的轮询器的数量&#xff1b;我这里把StartPollers&#xff0c;S…