2013-03-31 3 views
2

두 단어 사이에서 단어를 얻을 수있는 방법을 알아야합니다. 불행히도이 작업을 수행하는 방법을 모릅니다. 예 : 안녕하세요.두 단어 사이에 텍스트 가져 오기

어떻게해야합니까?

+2

가 먼저 _anything_ 시도 했 참조하십시오? 당신은 [FAQ]와 [ask]를 읽을 수 있습니다 –

+0

나는 두려워하지 않습니다. – Jamie

답변

8

나는 바로이 문제를 ... 이해한다면

public static String GetTextBetween(String source, String leftWord, String rightWord) 
     { 
      return 
       Regex.Match(source, String.Format(@"{0}\s(?<words>[\w\s]+)\s{1}", leftWord, rightWord), 
          RegexOptions.IgnoreCase).Groups["words"].Value; 
     } 

사용 : MSDN에 대한

Console.WriteLine(GetTextBetween("Hello good day", "hello", "day")); 

읽기 : regular expressions

+0

잘 보입니다. 시도해 보겠습니다. – Jamie

+0

다음은 "NAME.COM LLC"를 얻으려는 시도입니다. "Registrar : NAME.COM LLC Whois Server" 이걸 사용하여 텍스트를 선택합니다 : GetTextBetween (test, "Registrar :", "Whois"); 빈 문자열을 반환합니다. 어떤 도움이 필요합니까? – Jamie

+0

패턴에 구두점을 넣어야합니다. (? [\ w \ s] +) ( [\ w \ s. :] +) – xtmq

1

이 방법으로해야합니다 :

  • IndexOf
  • Substring
    1. 그냥 두 단어 같이 IndexOf에 의해 반환 된 값을 사용하여 하위 문자열.

      매우 간단합니다. 도움이 더 필요하시면 - 제발 의견을주십시오.

    0

    당신은 정규 표현식과 멀리 얻을 수 있습니다 간단한. 정규식을 유지하기 위해 단순화 :

    Regex.Match("string here",@"(?<=firstWord).*?(?=secondWord)").Value 
        .Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries) 
    
    +0

    감사합니다.하지만 Dragonfires 코드가 더 좋다고 생각합니다. 도와 줘서 고마워! – Jamie

    0

    처음에는 여기에 문자열이 있고 첫 번째 여러 문자를 새 문자열로 추출하려고합니다. 여기서 두 개의 매개 변수를 사용하여 Substring 인스턴스 메소드를 사용할 수 있습니다. 첫 번째 매개 변수는 0이고 두 번째 매개 변수는 원하는 길이입니다. 하위 문자열 [C 번호]를 사용

    프로그램

    using System; 
    
    class Program 
    { 
        static void Main() 
        { 
        string input = "OneTwoThree"; 
    
        // Get first three characters 
        string sub = input.Substring(0, 3); 
        Console.WriteLine("Substring: {0}", sub); 
        } 
    } 
    

    출력

    하위 문자열 : 하나

    SubString

    +0

    동적이기 때문에 나는 단어의 길이를 모른다. 도와 줘서 고마워! – Jamie

    관련 문제