如何使用标签在文本文件中查找文本?
How to find text in a text file using tags?
我有一个从 C# 代码片段创建的文件,该文本文件的结构如下:
#File
[ASSETS]
[VARIABLES]
i: 0
然后,在同一个文件中,写入以下行:
#File
[ASSETS]
"Image.png">C:\Users\User\Desktop\Image.png
"mine.gif"C:\Users\User\Desktop\mine.gif
[VARIABLES]
i: 0
现在我想做的是找到标签“[ASSETS]”内的文本我该怎么做?
如果启用单行和多行,这个正则表达式应该能够完成工作
^\[ASSETS\](.+)^\[
你会在第一个捕获组中找到字符串
例如,您可以阅读有关 C# 正则表达式的更多信息 here
正如其他人所提到的,您选择的文件格式并不很好,但是根据您的决定,您可以做这样的事情。未经测试,但我会留给您解决我的任何错误、忽略空格或空行、想出更有效的解决方案等。
string[] lines = File.ReadAllLines("file.txt"); //read file content
int index = lines.IndexOf("[ASSETS]");//get index of assets tag
var assets = new List<string>(); // create variable to store asset lines
while (index != -1 && ++index < lines.Length && !lines[index].StartsWith("[")) // as long as we had found the assets tag, the next line exists, and the next line isn't a tag (presumably only lines that start with [ are tag lines...) then add the next line to your assets list
{
assets.Add(lines[index]);
}
Console.WriteLine(string.Join(Environment.NewLine, assets)); // demonstrate successful asset collection
我有一个从 C# 代码片段创建的文件,该文本文件的结构如下:
#File
[ASSETS]
[VARIABLES]
i: 0
然后,在同一个文件中,写入以下行:
#File
[ASSETS]
"Image.png">C:\Users\User\Desktop\Image.png
"mine.gif"C:\Users\User\Desktop\mine.gif
[VARIABLES]
i: 0
现在我想做的是找到标签“[ASSETS]”内的文本我该怎么做?
如果启用单行和多行,这个正则表达式应该能够完成工作
^\[ASSETS\](.+)^\[
你会在第一个捕获组中找到字符串
例如,您可以阅读有关 C# 正则表达式的更多信息 here
正如其他人所提到的,您选择的文件格式并不很好,但是根据您的决定,您可以做这样的事情。未经测试,但我会留给您解决我的任何错误、忽略空格或空行、想出更有效的解决方案等。
string[] lines = File.ReadAllLines("file.txt"); //read file content
int index = lines.IndexOf("[ASSETS]");//get index of assets tag
var assets = new List<string>(); // create variable to store asset lines
while (index != -1 && ++index < lines.Length && !lines[index].StartsWith("[")) // as long as we had found the assets tag, the next line exists, and the next line isn't a tag (presumably only lines that start with [ are tag lines...) then add the next line to your assets list
{
assets.Add(lines[index]);
}
Console.WriteLine(string.Join(Environment.NewLine, assets)); // demonstrate successful asset collection