"Run X:101.860 Y:68.060 F:2000 S:800" 提取其中的X坐标和Y坐标
时间: 2024-02-06 15:02:04 浏览: 27
你可以使用正则表达式来从字符串中提取 X 坐标和 Y 坐标。以下是一个示例代码:
```cpp
#include <QRegularExpression>
#include <QDebug>
QString str = "Run X:101.860 Y:68.060 F:2000 S:800";
QRegularExpression re("X:(\\d+\\.\\d+)\\s+Y:(\\d+\\.\\d+)");
QRegularExpressionMatch match = re.match(str);
if (match.hasMatch()) {
QString xStr = match.captured(1);
QString yStr = match.captured(2);
double x = xStr.toDouble();
double y = yStr.toDouble();
qDebug() << "X:" << x << "Y:" << y;
} else {
qDebug() << "No match.";
}
```
这段代码使用了正则表达式 `X:(\\d+\\.\\d+)\\s+Y:(\\d+\\.\\d+)` 来匹配字符串中的 X 和 Y 坐标。其中,`\\d+\\.\\d+` 匹配一个小数,`\\s+` 匹配一个或多个空格。如果匹配成功,我们可以使用 QRegularExpressionMatch 对象的 captured() 函数获取匹配的子字符串,然后将其转换为 double 类型即可。