Qt正则表达式(匹配正数、负数、浮点数)

本文详细介绍如何使用QtCreator中的正则表达式功能,精确匹配包括正数、负数及浮点数在内的各种数值类型。通过具体代码示例,解析正则表达式的各个组成部分,如d+、^、$等符号的含义与用法,帮助读者深入理解并掌握正则表达式的实际应用。

环境:QtCreator,功能:正则匹配正数、负数、浮点数

QString text="-10";
QString pattern("^(-?[0-9])|(-?\\d+)(\.\\d+)$"); //Qt匹配正数、负数、浮点数
QRegExp rx(pattern);

bool flag=rx.exactMatch(text.trimmed()); //trimmed() 去除字符串前后的空白字符
if(flag)
   qDebug()<<text;

效果:

解释:

-?  : 表示一个或者零个负号。?表示重复前面的字符0次或者1次
\d+:\d表示匹配一位数字,是转义的字符,+表示前面的\d(数字)重复一次或者多次
 ^  :表示限定字符串的开头
 $  :限定字符串的结尾
 \.  :表示匹配小数点
 \   :用来标记转义字符
 |   : 表示或

### 匹配正数负数正则表达式设计 在数字处理中,匹配正数负数是常见的需求,尤其在数据校验、输入解析等场景中。一个完整的正则表达式可以同时匹配正整数、负整数以及浮点数形式的正负数值。 以下是一个通用的正则表达式,用于匹配正数负数,包括整数和浮点数形式: ```regex ^-?[0-9]+(\.[0-9]+)?$ ``` 该表达式解析如下: - `^` 表示匹配字符串的起始位置。 - `-?` 表示可选的负号,即数字可以是负数。 - `[0-9]+` 表示至少一个数字。 - `(\.[0-9]+)?` 表示可选的小数部分,其中 `\.` 匹配小数点,`[0-9]+` 匹配小数点后的至少一个数字。 - `$` 表示匹配字符串的结束位置。 此表达式能够匹配如 `123`、`-456`、`78.9` 和 `-12.34` 等形式的数值。 ### 在 Qt 中的应用示例 在 Qt 框架中,可以使用 `QRegExp` 或 `QRegularExpression` 来实现上述正则表达式。例如,以下代码片段展示了如何在 Qt 中使用正则表达式匹配正数负数: ```cpp QString text = "-10.5"; QString pattern = "^-?[0-9]+(\\.[0-9]+)?$"; QRegularExpression rx(pattern); bool flag = rx.match(text.trimmed()).hasMatch(); if (flag) qDebug() << text; ``` 该代码首先定义了一个字符串 `text` 和一个正则表达式 `pattern`,然后使用 `QRegularExpression` 进行匹配。如果匹配成功,则输出该字符串。 ### 匹配范围的扩展 除了匹配基本的正数负数外,还可以根据需求扩展正则表达式,例如匹配特定范围内的数值。例如,若要匹配 -100 到 100 之间的整数,可以使用以下表达式: ```regex ^(-100|-?[1-9]\d?|0|100)$ ``` 此表达式通过多个分支分别匹配 -100、-1 到 -99、0、1 到 99 和 100,从而实现范围限制[^2]。 --- ### 示例代码 以下是一个 Python 示例,展示如何使用正则表达式匹配正数负数: ```python import re text = "-123.45" pattern = r'^-?\d+(\.\d+)?$' match = re.fullmatch(pattern, text) if match: print("匹配成功") else: print("匹配失败") ``` --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值