2017-02-22 26 views
0

i'am пытается получить из этого текста:RegEx получить highlited текстовому C#

updateServer 
cInterface_test-184 
cServer_test-184 
dControl_test-178 
mcontrol_doorinterface_test-178 

италийских строки. Например, во второй строке тест-184 I'am с помощью следующей Regex:

test+.* 

Но как я могу извлечь тест-184 в виде строки в C# WPF?

спасибо :)

EDIT: Звезды не в тексте, я хотел, чтобы выделить текст, я хочу

ответ

0

После «тест - ', всегда есть число?

Если да, то следующий будет лучше для вас:

static void Main(string[] args) 
     { 
      var text = @" 
updateServer 
cInterface_*test-184* 
cServer_*test-184* 
dControl_*test-178* 
mcontrol_doorinterface_*test-178* 
"; 
      var pattern = @"test-\d*"; 

      foreach (Match match in Regex.Matches(text, pattern)) 
         Console.WriteLine(match); 
} 

Если «тест-» не является постоянной, вы можете использовать следующий код:

static void Main(string[] args) 
     { 
      var text = @" 
updateServer 
cInterface_*test-184*cServer_*test-184* 
cServer_*test-184* 
dControl_*test-178* 
mcontrol_doorinterface_*test-178* 
"; 
      var pattern = @"\*(.*?)\*"; 

      foreach (Match match in Regex.Matches(text, pattern)) 
       Console.WriteLine(match.Groups[1].Value); 
     } 
+0

Большое спасибо! Работа в порядке! – LongDong1234

0

Вы можете использовать код llke этого:

class Program 
{ 
    static void Main(string[] args) 
    { 
     var text = @" 
updateServer 
cInterface_*test-184* 
cServer_*test-184* 
dControl_*test-178* 
mcontrol_doorinterface_*test-178* 
"; 
     foreach (Match match in Regex.Matches(text, "\\*(.*)\\*")) 
     { 
      Console.WriteLine(match.Groups[1].Value); 
     } 
    } 
} 
+0

Может быть, это лучше обратиться (. *) в не-жадном (. *?). Он будет работать, даже если значения находятся в одной строке, например: cInterface_ * test-184 * cServer_ * test-184 * –

+0

Большое спасибо! Вот оно – LongDong1234