检查缩进字符串

时间:2014-09-09 17:21:59

标签: c# regex readline

我正在解析.ini文件,我需要定位一个确切的部分。 .ini文件看起来像这样,我试图定位“第二部分”部分,而不是继续:

1st Section
    item1
    item2
    item3
2nd Section
    item1
    item2
    item3
3rd Section
    item1
    item2
    item3

这是我到目前为止针对节标题“1st String”

的代码
    private static string ParseSataHeader(string sataHeader, string bcuFileName)
    {
        string strLine = "";
        StreamReader myReader = new StreamReader(bcuFileName);
        bool foundSection = false;

        while (strLine !=null)
        {
            strLine = myReader.ReadLine();
            if (strLine !=null)
            {
               if (String.Compare("2nd Section", strLine, StringComparison.OrdinalIgnoreCase) == 0)
                    sataHeader = strLine.Trim();
            }

在VBS中我知道你可以做一个RegExpression函数,以便继续迭代,直到找到一个没有缩进的字符串。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

查看为C#编写的this INI parser。我相信如果你使用一些解析器而不是正则表达式引擎或一些字符串拆分等会很好。

答案 1 :(得分:0)

使用ini-parser库是件小事

// Parse the ini file
IniData parsedData = new FileIniDataParser.LoadFile("ini_file_path.ini");

// Get an specific value inside that section ...
var value = parsedData["2nd Section"]["item1"]

// ... or just iterate to get all values for that section
foreach(KeyData key in parsedData["2nd Section"].Keys)
   Console.WriteLine(key.Name + " = " + key.Value);

免责声明:我是ini-parser的创建者