更改Regex以使用dot';s c#

本文关键字:dot Regex 更改 | 更新日期: 2023-09-27 18:20:03

我使用regex将G代码分离为单独的X、Y、Z、E、F命令。使用下面的regex可以使用逗号。

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

G1 X-5300 y5110 e117440

但如果我把逗号改成句点,那就行不通了。

G1 X-5.300 Y5.110 E1.17440

我需要在正则表达式中更改什么才能使其工作?

更改Regex以使用dot';s c#

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

[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