当我有一个使用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?
}
}
答案 0 :(得分:2)
获取匹配行号:
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位置 该代码对于获得匹配的字符行no非常有用,而在此行col则不像Visual Studio编辑器