2011-12-16 4 views
1

문자열에서 분리 기호를 자르지 않고 String.Split을 사용할 수 있습니까? 예를 들어String.Split 절단 분리 자

내가 가진 문자열

내가 배열을 구축하고 나는 그런 배열을 얻을

convertSource.Split(new[] { " http" }, StringSplitOptions.RemoveEmptyEntries) 

아래 코드를 사용하려면

convertSource = "http://www.domain.com http://www.domain1.com"; 

[1] http://www.domain.com 
[2] ://www.domain1.com 
내가 HTTP를 유지하고 싶은

, 그것은 String.Split뿐만 아니라 문자열을 분리뿐만 아니라 분리기를 절단 보인다.

+4

하지만 공간 "으로 분할해야"하지 HTTP함으로써, 도움이 되나요? –

+3

URL에 'http'가 포함되어 있으면 어떻게됩니까? 'http : // www.http.com /'과 같습니다. 먼저 입력 내용을 제한하는 명확한 규칙을 정의해야합니다. –

+0

@DavidePiras URL에 공백이있을 수 있으므로 공백으로 나눌 수 없습니다. – Tomas

답변

4

이 정규 표현식에 대한 비명 :

Regex regEx = new Regex(@"((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)"); 
Match match= regEx.Match("http://www.domain.com http://www.domain1.com"); 

IList<string> values = new List<string>(); 
while (match.Success) 
{ 
    values.Add(match.Value); 
    match = match.NextMatch(); 
} 
1

구분자로 " http"을 사용했기 때문입니다.

이 시도 :

string separator = " "; 
convertSource.Split(separator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries) 

분할 방법은 분리에 올 때 당신이 거기를 차단하고 또한 문자열에서 구분 기호를 제거 제공하는 방식으로 작동합니다. 당신은 당신은 단지 앞이나 나는 당신이 .Trim() 방법을 사용하는 것이 좋습니다 wouuld 당신의 문자열에서 후행 공백을 제거 할 경우 문자열은 다음과 구분 기호를 유지 분할 other ways이되어 무엇을 원하는 당신이 말하는에서

: convertSource.Trim()

+1

으로 인코딩해야합니다. 새로운 [] { ""} 사용할 수 있다고 생각합니다. " –

+0

URL에 공백이 포함될 수 있기 때문에 공백으로 나눌 수 없습니다. – Tomas

+1

@DavidePiras"[] { ""}은 (는) 오류. 그런 방법이 없습니다 ... – Tomas

2
string[] array = Regex.Split(convertSource, @"(?=http://)");