我目前正在尝试提取以下十进制数:
2453.6756667756
从下面的句子:
ID:1 x:1202 y:2453.6756667756 w:242
我正在使用这段代码:
regularExpression.setPattern("(\\d+)(?:\\s*)(w:)")
但是它给了我这个结果:
6756667756
这根本不正确。
请问你能帮帮我吗 ?
我目前正在尝试提取以下十进制数:
2453.6756667756
从下面的句子:
ID:1 x:1202 y:2453.6756667756 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
然后是a :
(但不消耗此子字符串,只是检查是否存在,因为前瞻是零宽度断言)。您可以使用更简单的正则表达式,而无需使用捕获组进行前瞻:
(\d+\.\d+)\s*w:
然后,该值将在第 1 组中。