1

我使用正则表达式将我的 G 代码分成单独的 X、Y、Z、E、F 命令。使用下面的正则表达式可以使用逗号。

[GMXYZEF][-+]?[0-9]+(,[0-9]+)?

G1 X-5,300 Y5,110 E1,17440

但是,如果我将逗号切换为点,它就不起作用了。

G1 X-5.300 Y5.110 E1.17440

我需要在我的正则表达式中进行哪些更改才能使其正常工作?

4

1 回答 1

2

句点在正则表达式中具有特殊意义,因此您需要在模式中对其进行转义:

[GMXYZEF][-+]?[0-9]+(\.[0-9]+)?

当然,要将其用作 C# 中的字符串,您要么必须转义反斜杠,要么使用逐字字符串:

var regex = new Regex("[GMXYZEF][-+]?[0-9]+(\\.[0-9]+)?"); // escaped backslash 
var regex = new Regex(@"[GMXYZEF][-+]?[0-9]+(\.[0-9]+)?"); // verbatim string
于 2013-06-25T20:45:22.133 回答