我使用正则表达式将我的 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
我需要在我的正则表达式中进行哪些更改才能使其正常工作?
句点在正则表达式中具有特殊意义,因此您需要在模式中对其进行转义:
[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