2010-06-04 2 views
0

C# Regex가 C++에서 작동하는 데 문제가 있습니다. C#에서 내가 가진 :C# Regex를 C++/CLI로 변환 하시겠습니까?

//using namespace System::Text::RegularExpressions; 
Regex^ rx = gcnew Regex("?<name>\w{3,16}", static_cast<RegexOptions>(RegexOptions::Compiled)); 

다음 :

//using System.Text.RegularExpressions; 
Regex YourName = new Regex("?<name>\w{3,16}"); 

하지만 C에서

는 ++이 정확하게 일치하지 않는

MatchCollection^ matches = rx->Matches(input); //input=String^ 

일치는 항상 0 수를 반환합니다. 내가 바보 같은 짓을하고 있니? C# regex를 C++ 정규식으로 변환하기 위해해야 ​​할 특별한 것이 있습니까? 이 빛에 대해 많은 의견을드립니다.

+1

C 번호입니다하지 C. C는 모든 유형의 어떤 정규 표현식에이 없다고. –

답변

3

는이 같은 컴파일러에서 \을 탈출해야합니다

Regex^ rx = gcnew Regex("?<name>\\w{3,16}", static_cast<RegexOptions>(RegexOptions::Compiled)); 
+3

그는 C# 1에서도 그걸 벗어날 필요가 없습니까? OP, C# 버전이 맞지 않습니까? @ "..."로 시작하는 리터럴 문자열이 있습니까? –

+0

네, 네 말이 맞아. 그걸 완전히 놓쳤다. 그래도 두 분 모두 덕분에 문제를 해결할 수 있습니다. – Dororo

관련 문제