2014-06-26 78 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

相關問題