通过 LabVIEW 正则表达式读取数值(整数或小数)

ops/2024/12/22 20:25:40/

在LabVIEW开发中,字符串处理是一个非常常见的需求,尤其是在处理包含复杂格式的数字时。本文通过一个具体的例子来说明如何利用 Match Regular Expression Function 和 Match Pattern Function 读取并解析字符串中的数字,并重点探讨这两个函数的异同。

示例说明

假设我们有一个字符串 0250 5631 362E 3403 18,并希望从中提取有效的数字。这个字符串包含多个由空格分隔的数字部分,并且其中包含小数形式的表达 362E

我们可以通过 LabVIEW 的 Match Regular Expression Function 来实现这一点,具体如下:

  1. 正则表达式:为了提取数字,可以使用正则表达式 [0-9]+(\.[0-9]+)?,其含义如下:

    • [0-9]+:匹配一串连续的数字

    • (\.[0-9]+)?:匹配可选的小数部分,也就是一个点号 . 后跟一串数字

  2. LabVIEW 匹配流程

    • 输入字符串:0250 5631 362E 3403 18

    • 正则表达式:[0-9]+(.[0-9]+)?

    • 匹配的结果会通过 whole match 输出框显示。

通过这个正则表达式,我们可以准确提取到每个数字部分并解析为数值,如图中所示,将字符串最终解析为数字类型(DBL),可用于后续的数值计算。

Match Regular Expression Function 和 Match Pattern Function 的区别

虽然 Match Regular Expression Function 和 Match Pattern Function 都用于字符串匹配,但它们之间有一些关键的差异:

  1. 功能丰富度

    • Match Regular Expression Function 提供了更多的正则表达式语法,支持复杂的模式匹配,可以使用如 \d(匹配数字)、^(匹配字符串开头)和 $(匹配字符串结尾)等多种正则表达式操作符。适合处理更复杂的字符串格式。

    • Match Pattern Function 则相对简单,仅支持基本的字符串匹配,不支持正则表达式中的括号 () 和竖线 | 等字符。这使得它的匹配速度较快,但功能相对有限。

  2. 性能对比

    • Match Pattern Function 在执行简单匹配时速度较快,适用于需要快速处理的大量简单字符串匹配场景。

    • Match Regular Expression Function 功能强大,但由于支持复杂的模式匹配,性能较为缓慢,适用于需要精细匹配的场景。

  3. 适用场景

    • Match Pattern Function 适合用于需要高效匹配固定模式的场景,如简单的字符替换或查找。

    • Match Regular Expression Function 则适用于需要处理更复杂格式的场景,如提取浮点数、处理多种分隔符、或处理类似日期格式的字符串。

总结

在LabVIEW中,使用正则表达式可以让我们更灵活地处理各种字符串操作。通过 Match Regular Expression Function,可以处理复杂的模式匹配,虽然性能略有影响,但其强大的功能使它成为复杂字符串处理的首选。而对于简单的字符串处理任务,Match Pattern Function 速度更快,是一种更为高效的选择。


http://www.ppmy.cn/ops/117639.html

相关文章

GNU链接器(LD):什么是符号?符号定义及实例解析

0 参考资料 GNU-LD-v2.30-中文手册.pdf GNU linker.pdf1 前言 一个完整的编译工具链应该包含以下4个部分: (1)编译器 (2)汇编器 (3)链接器 (4)lib库 在GNU工具链中&…

【嵌入式】总结——Linux系统移植(二)

同上一篇,本篇是对这一阶段学习历程的总结,仅作参考。 引言 这算是学习嵌入式Linux的二阶段,这一阶段虽是裸机开发与linux开发的过渡篇,但这一阶段也非常容易劝退。就我个人经验而言,学完裸机驱动后不应该直接看这一阶…

Java——包装类及认识泛型

包装类: 在学习泛型之前我们一定要认识包装类。 在Java 中,由于基本类型不是继承自 Object ,为了在泛型代码中可以支持基本类型, Java 给每个基本类型都对应了一个包装类型。 除了int类型和char类型的包装类不是它们对应的基本类型…

Unity3D入门(一) : 第一个Unity3D项目,实现矩形自动旋转,并导出到Android运行

1. Unity3D介绍 Unity3D是虚拟现实行业中,使用率较高的一款软件。 它有着强大的功能,是让玩家轻松创建三维视频游戏、建筑可视化、实时三维动画等互动内容的多平台、综合型 虚拟现实开发工具。是一个全面整合的专业引擎。 2. Unity安装 官网 : Unity…

Dubbo和Http的调用有什么区别

背景 我们在项目开发中,需要进行调用外部接口时,往往使用Dubbo和Http方式都能实现远程调用。那么他们在使用上,有什么区别呢? 定位不同 一个是分布式环境下的框架,一个是通信协议。 Dubbo:是一种高性能的…

quill富文本插入表格quill-better-table

使用quill-better-table插件,官网GitCode - 全球开发者的开源社区,开源代码托管平台 安装 首先quill-better-table插件,官网有写需要 quills v2.0.0-dev3 我这里使用的是 quills v2.0.0-dev4,自行安装 然后就是安装我们的插件 quill-bett…

学习C++的第七天!

1.虚函数是在基类中用 virtual 关键字声明的函数,可以在派生类中被重写。纯虚函数是在虚函数的基础上,在基类中被初始化为 0 的函数,含有纯虚函数的类是抽象类,不能被实例化。 2.如果基类的析构函数不是虚函数,当通过…

Python+requests+pytest+allure自动化测试框架

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、核心库 requests request请求 openpyxl excel文件操作 loggin 日志 smtplib 发送邮件 configparser unittest.mock mock服务 2、目录结构 base utils …