在REGEX中获得线路号和位置NO的最简单方法是匹配Charcter的



当我使用Regex类获得匹配时,我如何找到匹配行号和在该行中的位置,就像Notepad 一样?

示例:

void Main()
{
    string _strText = @"Line 1
Line 2
Line 3";
    var re = new Regex("2");
    var m = re.Match(_strText);
    if (m.Success)
    {
        Console.WriteLine(m.Index); // outputs 13
                                    // 13 -> line 2, position 6?
    }
}

获取匹配行号:

 long lineNumber = _strText.Substring(0, m.Index).LongCount(chr => chr == 'n') + 1;

并在此行中获得可比性的炭化位置:

int fis = _strText.LastIndexOf("n", m.Index);
                    int posi = m.Index - fis;

这里的posi是col位置此代码非常有助于获取匹配的字符行号,在此行中,col no喜欢Visual Studio编辑

最新更新