我正在閱讀文本文件行按行和我想要在檢查包含特殊字符的行是否包含特殊字符之後獲取數據。在我的情況下,我想檢查行是否包含<#Tag()>
以及if然後它包含讀取)之間的串(即線具有<#Tag(param1)>
那麼它應該返回param1
從文件中獲取文本C#
但問題是線可以包含超過一個<#Tag()>
對於實施例線路是 - <#Tag(value1)> <#Tag(value2)> <#Tag(value3)>
然後,它應該返回第一value1
然後value2
然後value3
string contents = File.ReadAllText(@"D:\Report Format.txt");
int start = contents.IndexOf("Header") + "Header".Length;
int end = contents.IndexOf("Data") - "Header".Length;
int length = end - start;
string headerData = contents.Substring(start, length);
headerData = headerData.Trim(' ', '-');
MessageBox.Show(headerData);
using (StringReader reader = new StringReader(headerData))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (line.Contains("<#Tag"))
{
string input = line;
string output = input.Split('<', '>')[1];
MessageBox.Show(output);
Globals.Tags.SystemTagDateTime.Read();
string newoutput = Globals.Tags.SystemTagDateTime.Value.ToString();
input = input.Replace(output, newoutput);
input = Regex.Replace(input, "<", "");
input = Regex.Replace(input, ">", "");
MessageBox.Show(input);
}
}
}
你試過使用正則表達式嗎? – tchelidze
請耐心等待正則表達式大師出現在一行中。 –
如果它可能比這更復雜,你可能會看着一個解析器,而不是試圖通過字符串操作或正則表達式來做到這一點。 –