正则表达式为文本文件中的第n行

时间:2013-11-15 19:19:05

标签: regex expression powergrep

我一直试图让这个正则表达式下来并搜索很多答案 我需要的是从文本文件中获取第n个(本例中为第4行) 我得到了这个atm

^(?<=([^\n]*\n){3})[^\n]*\n

但它似乎不起作用(在lookbehind中需要固定长度模式的东西) 有没有办法克服这个障碍?

如果这个问题需要,任何人都可以提供更正\不同的正则表达式吗?

由于

编辑:

我正在PowerGrep中试用这个正则表达式,它只是不起作用

P.S: 除了正则表达式之外,有没有办法在powergrep中获得第n行?

2 个答案:

答案 0 :(得分:1)

可能需要使用捕获缓冲区 此正则表达式使用MULTI_LINE模式 捕获缓冲区1包含第4行

 #  (?:^[^\n]*\n){3}([^\n]*)

 (?: ^ [^\n]* \n ){3}
 ( [^\n]* )

编辑:没有多线模式,这是同样的事情

 #  ^(?:[^\n]*\n){3}([^\n]*)

 ^ 
 (?: [^\n]* \n ){3}
 ( [^\n]* )

答案 1 :(得分:0)

更好的方法是使用Regex.Split

Regex.Split(text, "\n", RegexOptions.Multiline)(3)

这将为您提供文本字符串中的第4行。