[英]How to search text based on line number in string
我有一个功能,它可以搜索字符串中的文本,然后返回包含特定子字符串的行。这是该功能。
private static string getLine(string text,string text2Search)
{
string currentLine;
using (var reader = new StringReader(text))
{
while ((currentLine= reader.ReadLine()) != null)
{
if (currentLine.Contains(text2Search,StringComparison.OrdinalIgnoreCase))
{
break;
}
}
}
return currentLine;
}
现在在我的情况下,我必须开始搜索特定行之后的行,假设这里的第10行意味着必须在10行之后开始在字符串中搜索特定文本。所以我的查询是如何将其添加到当前函数中。帮我。
您可以将File.ReadLines
方法与Skip
:
var line = File.ReadLines("path").Skip(10)
.SkipWhile(line => !line.Contains(text2Search,StringComparison.OrdinalIgnoreCase))
.First();
您可以这样在当前代码中引入一个计数器:
private static string getLine(string text,string text2Search)
{
string currentLine;
int endPoint = 10;
using (var reader = new StringReader(text))
{
int lineCount = 0;
while ((currentLine= reader.ReadLine()) != null)
{
if (lineCount++ >= endPoint &&
currentLine.Contains(text2Search,StringComparison.OrdinalIgnoreCase))
{
return currentLine;
}
}
}
return string.Empty;
}
或者,使用当前代码将所有行添加到列表中,然后您便可以在其中使用Selmans答案。
String.Contains没有使用StringComparison.OrdinalIgnoreCase
的重载
var match = text.Split(new char[]{'\n','\r'})
.Skip(10)
.FirstOrDefault(line=>line.IndexOf("", StringComparison.OrdinalIgnoreCase)>=0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.