2014-06-26 75 views
-2

如何分隔具有相同标识符的多个字符串(它们在原始文本中按顺序相继)。分隔几个具有相同标识符的字符串

例如,我有很大的文本,需要匹配字符串组与标识符“rtsp-video”

set service "rtsp-video" protocol tcp src-port 0-65535 dst-port 80-80 
set service "rtsp-video" + udp src-port 0-65535 dst-port 554-554 
set service "rtsp-video" + tcp src-port 0-65535 dst-port 554-554 

如何正确设置REGEXP模式?

  ................................... 
StreamReader reader = new StreamReader(opendialog.FileName); 
string patternService = @"(set service "".+""){1,}.*"; 
var matchesService = Regex.Matches(reader.ReadToEnd(), patternService); 

      foreach (Match match in matchesService) 
       { 

        lst_app.Add(match.ToString()); 

       } 
      } 


      return lst_app; 
+0

你说你需要匹配'rtsp-video',但是你的Regex肯定不匹配*。你想要什么? –

+0

你的'。+'模式的问题是,一旦它达到双引号''',它就继续执行它,你应该使用'[^“”] +',这样也可以避免回溯。 – dasblinkenlight

+0

匹配字符串其中包含“rtsp-video”,这是正确的 – user3214034

回答

1

如何

^.*?\"rtsp-video\".*?$ 

将这项工作?您可能必须更改一些设置才能正确处理行结束。 C#很奇怪。

只是虽然...为什么不使用:

lst_app = File.ReadAllLines(opendialog.FileName).Where(w=>w.Contains("\"rtsp-video\"")).ToList(); 

干杯。

+0

谢谢!现在我会试试你的方法! – user3214034

相关问题