2013-06-07 7 views
0

C#에서 일치하지 않는 정규식이 있습니다.정규식이 일치하지 않는 이유 이해

string auth = @"oauth_consumer_key=""0685bd9184jfhq22"""; 
string pattern = "oauth_consumer_key=\"(\\d+)%"; 
MatchCollection matches = Regex.Matches(auth, pattern); 

항상 일치 항목을 얻습니다. auth 문자열에서 0685bd9184jfhq22 문자열을 추출하려고합니다.

+0

당신이 실제로하고 싶은 것을 진술하지 않았습니까? 그렇다면 우리는 누구를 잘못 판단 했습니까? – spender

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

@spender 지적 해 주셔서 감사합니다. 내 질문을 수정했다. – ssk

답변

1

,이 시도 :

string auth = @"oauth_consumer_key=""0685bd9184jfhq22"""; 
string pattern = "oauth_consumer_key=\"(.*)\""; 
var match = Regex.Match(auth, pattern); 
Console.WriteLine(match.Value); 

당신이 원하는 경우를 0685bd9184jfhq22 값을 추출하려면 pattern을 다음으로 대체하십시오.

string pattern = "(?<=oauth_consumer_key=\")(.*)(?=\")"; 
1

거기에 숫자가 일치하는 \d이 있으며 값에 글자가 있습니다.

키 자체에 대한 표현은 아마도 \d 대신 [0-9a-z]이 될 것입니다.

정규식에 닫는 인용 부호가 없습니다. 거기에 인용 부호가 있어야하는 퍼센트 기호가 있습니다.

1

시도 :

"oauth_consumer_key=\"(.+)\"" 

그리고 결과를 얻을 : 당신이 전체 auth 문자열과 일치 할 경우

matches[0].Groups[1].Value 
관련 문제