我目前正在尝试提取以下十进制数:
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组中。