我想查看特定字符串的文件内容,实际上我想检查文件包含' ANSWER
'如果在该字符串后面有任何字符到文件末尾。
我怎样才能实现?
P.S。文件内容是动态内容,而且答案是“回答”。字符串不在文件内的固定位置。
由于
答案 0 :(得分:6)
static bool containsTextAfter(string text, string find)
{
// if you want to ignore the case, otherwise use Ordinal or CurrentCulture
int index = text.IndexOf(find, StringComparison.OrdinalIgnoreCase);
if (index >= 0)
{
int startPosition = index + find.Length;
if (text.Length > startPosition)
return true;
}
return false;
}
以这种方式使用它:
bool containsTextAfterAnswer = containsTextAfter(File.ReadAllText("path"), "ANSWER");
答案 1 :(得分:2)
一种方法是将整个文件加载到内存中并进行搜索:
string s = File.ReadAllText(filename);
int pos = s.IndexOf("ANSWER");
if (pos >= 0)
{
// we know that the text "ANSWER" is in the file.
if (pos + "ANSWER".Length < s.Length)
{
// we know that there is text after "ANSWER"
}
}
else
{
// the text "ANSWER" doesn't exist in the file.
}
或者,您可以使用正则表达式:
Match m = Regex.Match(s, "ANSWER(.*)");
if (m.Success)
{
// the text "ANSWER" exists in the file
if (m.Groups.Count > 1 && !string.IsNullOrEmpty(m.Groups[1].Value))
{
// there is text after "ANSWER"
}
}
else
{
// the text "ANSWER" does not appear in the file
}
在正则表达式的情况下,“ANSWER”的位置将在m.Index
,“ANSWER”之后的文本位置将在m.Groups[1].Index
。