在文本文件中的行之间查找文本

时间:2017-07-24 16:23:00

标签: c# .net

我在文本文件中有以下代码:

static const char* g_FffectNames[EFFECT_COUNT] = {
"Fade In and Fade Out",
"Halloween Eyes",
"Rainbow Cycles"
};

我可以使用g_FffectNames[EFFECT_COUNT]作为搜索此大文本文件的起点。但我需要在引号内得到东西(例如万圣节眼睛或彩虹周期)。

在C#中获取这些文本的最佳方法是什么?我还必须假设此文件的顶部(static const之前)和底部(};之后)有更多代码,而= {等字符之间的间距也是如此或};对用户是可选的。

我应该将所有这些行压缩成一个字符串并开始搜索,还是应该使用某种正则表达式匹配来使这更容易?

2 个答案:

答案 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)

我根据这篇文章得到了它的工作:

c# search string in txt file

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;
        }