使用QRegularExpression从句子中提取一个十进制数
Extract a decimal number from a sentence using a QRegularExpression
我目前正在尝试提取以下十进制数:
2453.675667756
来自以下句子:
ID:1 x:1202 y:2453.675667756 w:242
我使用的是这个代码:
regularExpression.setPattern("(\d+)(?:\s*)(w:)")
然而,它给了我这样的结果:
6756667756
这根本不正确。
你能帮我吗?
您可以使用以下正则表达式:
d+.d+(?=s*w:)
参见演示
在Qt:
regularExpression.setPattern("\d+\.\d+(?=\s*w:)")
正则表达式匹配:
d+
-1个或多个数字.
-文字点d+
-1个或多个数字(?=s*w:)
-一个正向前瞻,确保在匹配的最后一个数字之后有零个或多个空白符号,w
后面跟着:
(但该子串没有被使用,只是检查是否存在,因为前瞻是零宽度断言)
您可以使用一个更简单的正则表达式,而不需要带捕获组的前瞻:
(d+.d+)s*w:
然后,该值将在第1组中。
相关文章:
- visual在c++中将十进制数转换为二进制数
- C++从二进制转换为十进制数
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 将分数转换为十进制数并对其进行排序
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- std::transform 将一个结构数组复制到另一个结构数组
- 给定一个单词数组和一个字符串,如何计算给定字符串中的所有单词
- 使用标准库计算字符串中的十进制数
- (第 1 位 + 第 2 位)以十进制数表示
- 在 c 中给定一个固定数的情况下,找到所有可能的加法和组合(给定一个总和,找到它的可能的加法和排列
- Atmel Studio:返回一个包含数组的寄存器
- 一个 2D 数组,并按行存储值.第一个循环用于行索引,第二个循环用于列索引
- 我可以使用 constexpr 函数声明一个静态数组吗?
- 您能否给我一个 16 位(或更多)十进制数,该十进制数仅在第 15 位正确转换为双精度浮点圆
- 从几个十进制数中绘制一个十六进制数
- 使用QRegularExpression从句子中提取一个十进制数
- C++试图确定最高和最低的数字,并得到一个长的十进制数
- 将十进制数保持在一个范围内