2013-08-01 4 views
-7

다른 문자열의 브라우저 이름과 운영 체제를이 문자열 에서 추출하고 싶습니다. 내가 대신 사용자 에이전트 분할의C# 하위 문자열을 사용하여 문자열을 추출하는 방법

{ Browser/leavethis (Operating System) Leavethis/Leavethis (Leavethis, Leavethis) Leavethis/Leavethis/Leavethis } 
+0

정확한 길이를 알고 있습니까? 그렇지 않다면 : 정규 표현식이나 IndexOf/Substring의 조합을 사용하십시오. –

+0

그래서 브라우저는 첫 번째 "{"와 첫 번째 "/"사이의 트림 된 내용이고 첫 번째 "("와 첫 번째 ") 사이의 운영체제입니다. 글쎄, 그건 당신에게 무엇을해야하는지에 대한 아이디어를 줄 것입니다. – Corak

+0

무엇을 시도 했습니까? 'Leavethis'는 무엇입니까? - 그것은 문자열에 남겨두기위한 것입니까? 괄호, 슬레 및 괄호는 어떨까요? – slugster

답변

1

에서 그들을 추출 할 문자열을 사용하는 방법, 당신은 이미 속성을 사용하는 브라우저/OS를 감지 할 Asp.net 프레임 워크를 제공한다.

사용이

  1. 브라우저 이름 Request.Browser.Browser 및 브라우저 버전을 얻을 Request.Browser.MajorVersion

  2. 운영 체제 이름 Request.Browser.Platform 및 OS 버전 Request.UserAgent

+0

코드 파일에서 다음과 같은 메소드를 만들고이를 html로 접근하여 해결합니다. public String Browser (string bro) { int end = bro.IndexOf ('(') ; B = 브로 문자열로서 경우 (! 단부 = -1) { bro.Substring B = (0, 단부) } 리턴 B]} 공개 O의 문자열 (캐릭터 OS) { INT end = os.IndexOf (')'); INT 시작 = os.IndexOf ('(') + 1]! INT 등록 무비 = 단부 시작 -; 스트링 B = 운영 체제; 경우 (단 = -1) { B = os.Substring는 (시작, TOT); } return b; –

0

에게 정규식 등을 얻을 수 있습니다 다음과 같이 작동해야하지만, @ bastos.sergio의 대답은 당신이 필요로하는 것을 얻는 올바른 방법이라고 생각합니다.

Regex r = new Regex(@"{\s+(?<Browser>\w+)/[^(]+\((?<OperatingSystem>[^)]+).+"); 
string browser; 
string OS; 

var match = r.Match(s); 

if (match.Success) 
{ 
    browser = match.Groups["Browser"].Value; 
    OS = match.Groups["OperatingSystem"].Value; 
} 
관련 문제