当我使用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编辑