2013-06-25 3 views
1

정규식을 사용하여 내 G 코드를 별도의 X, Y, Z, E, F 명령으로 구분합니다. 아래 정규식을 사용하면 쉼표로 작동합니다.정규식을 사용하여 도트의 C 코드로 작업하기 #

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

G1의 X-5300 Y5,110 E1,17440

하지만 난이의를 점하기 위해 쉼표를 전환하면이 작업을 dosent.

G1의 X-5.300 Y5.110 E1.17440

내가 그것을 작동하도록 내 정규식 변경하려면 어떻게해야합니까?

+1

심각하게? 정규식에서', '를'\.'로 바꾸려고하지 않았습니다. ??? – tnw

+0

네,하지만 지금은 올바른지 알고 있습니다. 하지만 이건 내가 convert.todouble dotent 작업을 사용하고 있기 때문에 작동하지 않았다. 이제 점을 쉼표로 변경해야한다는 것을 알고 있습니다. 그럼 내가 어떻게 할 수 있니? – user2521664

+0

이 줄의 코드에서 문제가 해결되었습니다. 'string result = Regex.Replace (readContents, "[.]", ",", RegexOptions.IgnoreCase);' – user2521664

답변

2

기간은 정규 표현식에서 special significance, 그래서 당신은 당신의 패턴을 탈출해야합니다

하는 것은 물론, C#에서 문자열로 사용하기 위해, 당신은 백 슬래시를 이스케이프해야 하나 또는 축 어적 문자열을 사용하십시오.

var regex = new Regex("[GMXYZEF][-+]?[0-9]+(\\.[0-9]+)?"); // escaped backslash 
var regex = new Regex(@"[GMXYZEF][-+]?[0-9]+(\.[0-9]+)?"); // verbatim string