다른 문자열의 브라우저 이름과 운영 체제를이 문자열 에서 추출하고 싶습니다. 내가 대신 사용자 에이전트 분할의C# 하위 문자열을 사용하여 문자열을 추출하는 방법
{ Browser/leavethis (Operating System) Leavethis/Leavethis (Leavethis, Leavethis) Leavethis/Leavethis/Leavethis }
다른 문자열의 브라우저 이름과 운영 체제를이 문자열 에서 추출하고 싶습니다. 내가 대신 사용자 에이전트 분할의C# 하위 문자열을 사용하여 문자열을 추출하는 방법
{ Browser/leavethis (Operating System) Leavethis/Leavethis (Leavethis, Leavethis) Leavethis/Leavethis/Leavethis }
에서 그들을 추출 할 문자열을 사용하는 방법, 당신은 이미 속성을 사용하는 브라우저/OS를 감지 할 Asp.net 프레임 워크를 제공한다.
사용이
브라우저 이름 Request.Browser.Browser
및 브라우저 버전을 얻을 Request.Browser.MajorVersion
운영 체제 이름 Request.Browser.Platform
및 OS 버전 Request.UserAgent
코드 파일에서 다음과 같은 메소드를 만들고이를 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; –
에게 정규식 등을 얻을 수 있습니다 다음과 같이 작동해야하지만, @ 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;
}
정확한 길이를 알고 있습니까? 그렇지 않다면 : 정규 표현식이나 IndexOf/Substring의 조합을 사용하십시오. –
그래서 브라우저는 첫 번째 "{"와 첫 번째 "/"사이의 트림 된 내용이고 첫 번째 "("와 첫 번째 ") 사이의 운영체제입니다. 글쎄, 그건 당신에게 무엇을해야하는지에 대한 아이디어를 줄 것입니다. – Corak
무엇을 시도 했습니까? 'Leavethis'는 무엇입니까? - 그것은 문자열에 남겨두기위한 것입니까? 괄호, 슬레 및 괄호는 어떨까요? – slugster