2009-12-22 3 views
0

나는 조금 최고의 정규 표현식을 사용하는 방법을 혼동와 나는 같은 INI 파일에서 URL 값을 추출 할 내가 어떤 도움을받을 수 있기를 바랍니다 :정규 표현식을 사용하여 INI 파일에서 특정 값을 추출하는 방법은 무엇입니까?

[DEFAULT] 
BASEURL=http://www.stackoverflow.com/ 
[InternetShortcut] 
URL=http://www.stackoverflow.com/ 

그래서 나는 URL 값으로 얻을 수 있습니다 정규 표현식과의 유일한 일치 - 그러나 나는 이것을 (아직) 충분히 이해하지 못한다.
모든 INI 파일을 구문 분석하고 Name, Value Pairs를 얻는 RegEx 예제를 보았습니다. 다른 어떤 것이 든 관계없이 파일에서만 URL 값을 가져 오려고합니다.
내 목표는 다음과 같이하는 것입니다 : 수 끝에

Dim _pattern As New Text.RegularExpressions.Regex("RegEx") 
Dim _url As String = _pattern.Match(iniContentString).Value 

그것은 간단하게 보이지만 내가 모든 것을 할 특정 사례 정규식 만들 수없는 것 "URL을 ="를 vbCrLf에 내 " 시합".
Regular-Expressions.info는 전에 도움이되었지만이 간단한 예제를 얻지 못했습니다. 이처럼

+2

"GetPrivateProfileString"을 사용하지 않는 이유가 있습니까? 이것은 정확히 당신이하려는 일을합니다. http://msdn.microsoft.com/en-us/library/ms724353(VS.85).aspx –

+0

P/Invoke가 필요합니다. – SLaks

+1

또한 어떤 실제 정규 표현식을 사용하고 있습니까? 즉, Regex ("RegEx")에서 "Regex"가있는 곳에서 나타나는 부분 –

답변

1

:.이 어떤URL= 라인, 즉 당신이 원하는 아니라면이
에서의 어떤 부분, 제발 말해 일치하는 것으로

New Regex("^URL=(.*)$", RegexOptions.Multiline).Match(iniContent).Groups[1].Value 

참고.

편집 : 그것은 실제로 .Groups[1].Value을해야한다; 여기에는 URL=이 포함되지 않습니다.

+0

이것은 내가 필요로했던 것보다 더 비슷합니다. 나는 전체 문자열이 아닌 문자에만 사용했습니다. 이것은 작동하지만 여전히 "URL ="부분을 얻습니다. 제외 할 수 있습니까? 그렇지 않으면 String Replace를 사용하여 제거하고 답변으로 표시합니다. – RoguePlanetoid

+0

편집을 해주셔서 감사합니다. URL과 일치는 두 개의 개별 그룹입니다. 저는 RegEx의 "반환 된"부분이 있는지 항상 궁금해했습니다. 그걸 몰랐는데, 이젠 효과가 있습니다! – RoguePlanetoid

관련 문제