我已经用头撞了2天,但仍然无法破解它。
我有包含数百行 XY 位置数据的 Gcode 文件,我正在尝试计算正则表达式以仅提取“X”和“Y”字符之后的浮点值。
Gcode 的每一行通常都喜欢这样,并且使用起来相当简单
G1X445.71Y602.47
但偶尔我也会有这样的奇怪线条,这让它变得更加棘手
G1X446.11 // no Y value
G1Y601.91 // no X value
G1X445.73Y602.26S76.5F300 // Y value is followed by S or F values
我正在尝试制定正则表达式以在任何这些情况下仅提取 X 和 Y 值。这些值始终为正浮点数。如此神奇的正则表达式代码是这样的
var lineData = "G1X445.71Y602.47";
var X = lineData.match(/regex_to_find_X_float/)
var Y = lineData.match(/regex_to_find_Y_float/)
//resulting in: X= 445.71 Y= 602.47
以及偶尔不一致的线条
- G1X446.11 --> X= 446.11 Y=null (为缺失的 Y 值添加一个空值)
- G1Y601.91 --> X= null Y= 601.91(为缺失的 X 值添加一个 null
- G1X445.73Y602.26S76.5F300 --> X= 445.73 Y=602.26(忽略 F 和 S 值)
我最接近的是,
X(?:\d+\.\d+|\d+)
但它仍然保持 X 为“X445.71”
任何建议都非常感谢...