2011-03-15 2 views
2

У меня есть это регулярное выражение, чтобы прочитать все строки после значения Описание:Regex вся линия

var descriptionMatches = 
    Regex.Matches(source, @"\b(?<key>Description)\s*(?<value>\w+)"); 

Проблема заключается в том, возвращенное значение только первое слово, а не вся линия.

Что я пропускаю,

ответ

3

Изменить \w+ быть .+. Это будет соответствовать всем символам, а не только символам серийных слов (которые не содержат пробелов).

Кроме того, если вы хотите ., чтобы соответствовать новой строки (вы указываете, что вы хотите, чтобы соответствовать все строки после описания), то вы должны использовать RegexOptions.Singleline вариант:

var descriptionMatches = 
    Regex.Matches(source, @"\b(?<key>Description)\s*(?<value>.+)", RegexOptions.Singleline); 
+0

Ваш пример до сих пор использует '\ w' –

+0

@jb: к сожалению, фиксированный – Cameron

+0

Спасибо, это то, что мне нужно ..... – Mark

0

Вот отличный инструмент, чтобы помочь решить подобные проблемы: http://txt2re.com/

+1

лучше RTFM для StackOverflow – Mark

+0

Просто попытка на шутку. Ссылка была главным моментом. :) –

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