2013-09-05 2 views
0

테스트 베드 : http://regexhero.net/tester/Match.Regex에서 따옴표를 올바르게 이스케이프 처리하려면 어떻게해야합니까?

입력 문자열 : "_sql": "SELECT * FROM AA" 정규식 : (?:"_sql"[\s]*)([^,]*)

원하는 결과는 :

가 지금은 C#을에 가서 이것을 코딩 "AA SELECT * FROM"

Match match = Regex.Match("_sql\": \"SELECT * FROM AA", @"(?:""_sql""[\s]*)([^,]*)"); 
    if (match.Success) 
    { 
     String value = match.Groups[0].Value; 
     Console.WriteLine(value); 
    } 

match.Success은 왜 거짓입니까?

답변

2

'주위에 " " 문자열을 인용하는 것을 잊어 버렸습니다.'

Try-

Match match = Regex.Match("\"_sql\": \"SELECT * FROM AA\"", @"(?:""_sql""[\s]*)([^,]*)"); 
0

은 별도의 변수를 가지고 있고, 적절하게 탈출 할 수 있습니다.

string newVa = "\"_sql\": \"SELECT * FROM AA\""; 
Match match = Regex.Match(newVa , @"(?:""_sql""[\s]*)([^,]*)"); 

또는

Match match = Regex.Match(@"""_sql"": ""SELECT * FROM AA""", @"(?:""_sql""[\s]*)([^,]*)"); 
관련 문제