C# 用相同的标识符分隔多个字符串
如何分离具有相同标识符的多个字符串(它们在原始文本中顺序紧随其后) 例如,我有大文本,需要将字符串组与标识符“rtsp视频”匹配C# 用相同的标识符分隔多个字符串,c#,regex,C#,Regex,如何分离具有相同标识符的多个字符串(它们在原始文本中顺序紧随其后) 例如,我有大文本,需要将字符串组与标识符“rtsp视频”匹配 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
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;
怎么样
^.*?\"rtsp-video\".*?$
这样行吗?您可能必须更改某些设置,才能正确处理行结束。C#那样很奇怪
只是一点点。。。为什么不使用:
lst_app = File.ReadAllLines(opendialog.FileName).Where(w=>w.Contains("\"rtsp-video\"")).ToList();
干杯。您说过需要匹配
rtsp视频,但您的正则表达式在这方面肯定不匹配。您想要的是什么?您的+
模式的问题是,一旦它到达双引号“
,它将继续通过它。您应该使用[^”“]+
。这也将避免回溯。匹配包含“rtsp视频”的字符串”“是的right@user3214034:因此,该评论没有给问题添加任何内容。请具体一点,谢谢!现在我要试试你的方法!