我在文本文件中有以下代码:
static const char* g_FffectNames[EFFECT_COUNT] = {
"Fade In and Fade Out",
"Halloween Eyes",
"Rainbow Cycles"
};
我可以使用g_FffectNames[EFFECT_COUNT]
作为搜索此大文本文件的起点。但我需要在引号内得到东西(例如万圣节眼睛或彩虹周期)。
在C#中获取这些文本的最佳方法是什么?我还必须假设此文件的顶部(static const
之前)和底部(};
之后)有更多代码,而= {
等字符之间的间距也是如此或};
对用户是可选的。
我应该将所有这些行压缩成一个字符串并开始搜索,还是应该使用某种正则表达式匹配来使这更容易?
答案 0 :(得分:0)
您可以使用正则表达式来解析输入文件:
var input = /* file content */;
var regex = new Regex("^\\s*\"(?<row>[^\"]+)\\s*\"", RegexOptions.Multiline);
var values = regex.Matches(input)
.Cast<Match>()
.Select(m => m.Groups["row"]).ToArray();
答案 1 :(得分:0)
我根据这篇文章得到了它的工作:
public string readText()
{
string test = string.Empty;
var mytext = File.ReadLines("C:\\temp\\test_search.txt")
.SkipWhile(line => !line.Contains("g_FffectNames[EFFECT_COUNT]"))
.Skip(1)
.TakeWhile(line => !line.Contains("};"));
foreach (var line in mytext)
{
test += line;
}
return test;
}