2013-04-13 7 views
7

Что бы синтаксис получить все слова в строке после первого пробела. Например, бобы хороший дом. Таким образом, результат должен быть «хорошим домом» без цитаты.Regex получить все после первого пробела

([^\s]+) дает мне все 3 слова друг от друга;

,[\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

отметьте ваш ответ как принятый, так как он решает вашу проблему –

Смежные вопросы