2013-04-13 3 views
7

첫 번째 공백 다음에 오는 모든 단어를 문자열에서 가져 오는 구문은 무엇입니까? 예를 들어, bobs nice house. 결과는 따옴표없이 "멋진 집"이어야합니다.첫 번째 공백 다음에 오는 모든 것을 얻는 정규식

([^\s]+) 나는 세 단어로 나에게 모든 단어를 제공합니다.

,[\s\S]*$ > 컴파일되지 않음.

답변

4

는 나는 이런 식으로 일을해야한다고 생각 :

[^ ]* (.*) 

그것은 하나의 공간보다 공간이 아닌 0 개 이상의 요소를 허용하고 그 공간 뒤에 오는 어떤 선택합니다.

C#을 사용

var input = "bobs nice house"; 

var afterSpace = Regex.Match(input, "[^ ]* (.*)").Groups[1].Value; 

afterSpace"nice house"입니다.

[^ ]*(.*)

에 결과 문자열 변경 식뿐만 아니라 어떤 정규식 솔루션

사실
var afterSpace = input.Substring(input.IndexOf(' ')); 
+0

이것은 입력 문자열 – torres

+0

와 동일하게 사용하십시오. – MarcinJuraszek

+0

[^] * (. *)이 코드를 제안했습니다. – torres

1

을 첫 번째 공간을 얻을, 당신은 그것을 위해 정규식을 사용할 필요가 없습니다 방법. 이런 식으로 String.Split() 메서드를 사용해야합니다.

string s = "bobs nice house"; 
string[] s1 = s.Split(' '); 
for(int i = 1; i < s1.Length; i++) 
    Console.WriteLine(s1[i]); 

출력됩니다.

nice 
house 

여기는 DEMO입니다.

9

나는 가능한 가장 짧은 코드를 찾고있었습니다. 다음은 그 일을했다. 고마워요

\s(.*) 
+1

공백이 아닌'\ s'가 모든 공백과 일치한다는 것을 알고있는 한 – Patashu

+0

는 문제를 해결하므로 대답을 승인 된 것으로 표시하십시오. –

관련 문제