2010-03-08 3 views
2

У меня есть следующий текст:Как получить регулярное выражение соответствует между двумя границами

 
started: Project: ProjectA, Configuration: Release Any CPU ------ 

Я хотел бы получить только фактическое название проекта, который в этом примере является «ProjectA».

У меня есть регулярное выражение "started:(\s)Project:(\s).*," , который даст мне "started: Project: ProjectA,", а затем я могу использовать в дальнейшем основную строку поиска, чтобы вернуть имя проекта, но было интересно, если есть способ, которым я могу просто взять фактическое название проекта, не делая дополнительный поиск строк, возможно, с использованием правильного регулярного выражения.

Что мне нужно, это строковое значение между границами «началось: Project:» и «,».
Любые идеи?

ответ

1

Попробуйте следующее: started:\sProject:\s(.*),. Я также рекомендую установить Expresso. Это отличный инструмент для отладки и анализа регулярных выражений.

+0

Спасибо, что работает и инструмент отлично. – Rubans

1

Вы можете использовать "started: Project: ([^,]+),", а затем получить значение первой группы:

var m = regex.Match("...."); 
string project = m.Groups[1].Value; 
0

Если имя проекта не может содержать запятые, это должно работать:

started:\sProject:\s(.*?), 
Смежные вопросы