2013-04-28 2 views
0

정규식을 사용하여 //table[@data-account='test']//span[contains(.,'FB')] 문자열에서 //table[@data-account='test']을 얻어야합니다.정규 표현식을 사용하여 문자열의 일부분 가져 오기

정규식을 처음 사용하고 기존 샘플을 제 목적으로 사용할 수 없습니다. 감사합니다.

+0

[이 튜토리얼은] (http://www.regular-expressions.info/tutorial.html)는 주제에 대한 아주 좋은 읽기, 그리고 아주 빨리 정규 표현식에 속도를 당신을 얻어야한다. 그리고 확실히 재사용 할 가치가있는 지식입니다. 그럼에도 불구하고 하나의 입력 - 출력 쌍은 입력의 어느 부분이 고정되어 있는지, 어느 부분이 가변적인지를 판단하기에는 충분하지 않으며 정규 표현식의 사용을 정당화하기에 충분합니다. –

+0

정규 표현식없이 할 수 있습니다. 유일한 옵션입니까? 너는 다른 방법들에도 관심이 있니? – Mehran

답변

0

정규식이 필요하지 않습니다. 다음과 같은 방법으로 String.Split을 사용할 수 있습니다.

문자열의 하위 문자열을 포함하고 지정된 문자열 배열의 요소로 구분 된 문자열 배열을 반환합니다.

string s = @"//table[@data-account='test']//span[contains(.,'FB')]"; 
string[] stringarray = s.Split(new string[1] {@"//"}, StringSplitOptions.RemoveEmptyEntries); 
Console.WriteLine("//" + stringarray[0]); 

출력 될 것입니다;

//table[@data-account='test'] 

여기는 DEMO입니다.

0
using System; 
using System.Text.RegularExpressions; 

class P 
{ 
    static void Main() 
    { 
     Console.WriteLine(
      Regex.Match("//table[@data-account='test']//span[contains(.,'FB')]", "^([^]]+])").Groups[1].Value); 
    } 
} 
+0

와우! 고맙습니다! 놀랄 만한 – user2329418

관련 문제