2016-01-21 6 views
1

Я пытаюсь найти слово с ключевым словом New. Ниже мой код.Найти слова, начинающиеся с определенного слова в regex

 string contents = " holla holla testing is for NewFinancial History:\"xyz\" dsd NewFinancial History:\"abc\" New Investment History:\"abc\" dsds "; 

     var keys = Regex.Matches(contents, @"New(.+?):", RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace).OfType<Match>().Select(m => m.Groups[0].Value.Trim().Replace(":", "")).Distinct().ToArray(); 

В приведенном выше коде он ищет как NewFinancial Истории: \ "хуг \" и новую инвестиционную историю: \ "а \". Он должен найти только NewFinancial History: \ "xyz \" not New Investment History: \ "abc \". Я хочу найти слово без пробела после ключевого слова New. Вышеприведенный код работает как с пространством, так и без него.

+0

(? <= Новый) (\ S +). * ?: – Aferrercrafter

ответ

1

Вы можете использовать это регулярное выражение:

\bNew(\S.+?): 

в соответствии New с последующим некосмическими

RegEx Demo

Или еще:

\bNew\B(.+?): 

в соответствии New с последующим не-слово-граница

+1

Спасибо. Это сработало –