Как получить совпадения регулярных выражений между двумя границами - PullRequest
2 голосов
/ 08 марта 2010

У меня есть следующий текст:

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

Я хотел бы получить только фактическое имя проекта, которое в этом примере - "ProjectA".

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

Что мне нужно, так это строковое значение между границами «Запущено: Проект:» и «,».
Есть идеи?

Ответы [ 3 ]

1 голос
/ 08 марта 2010

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

var m = regex.Match("....");
string project = m.Groups[1].Value;
1 голос
/ 08 марта 2010

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

0 голосов
/ 08 марта 2010

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

started:\sProject:\s(.*?),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...