2013-11-15 63 views
0

我一直在試圖得到這個正則表達式並搜索了很多答案 我需要的是從文本文件中獲得第n個(本例中爲第4行) 我得到了這個下來ATM在文本文件中的第n行的正則表達式

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

但它似乎沒有工作(大約需要在回顧後固定長度模式的東西) 有什麼辦法來克服這一障礙?

任何人都可以提供更正\不同的正則表達式,如果需要這個問題?

感謝

編輯:

我想這個表達式中PowerGrep,它只是不工作

PS: 有越來越第n行的正則表達式比其他powergrep的方式?

回答

1

可能需要使用捕獲緩衝區。
這個正則表達式使用MULTI_LINE模式。
捕獲緩衝1包含4號線

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

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

編輯:這裏是沒有多行模式相同的事情

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

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

感謝,正則表達式你給了理論上的作品,但不是在PowerGrep出於某種原因 我編輯的問題,用音符約powergrep 感謝您的幫助無論如何 – avishai445

+0

@user - 我添加了一個非多行等價,看是否這樣可行。我不得不查找PowerGrep來了解爲什麼/如果它不在那裏工作。 – sln

+1

我試過沒有多行的正則表達式它不起作用 它總是返回整個4行而不是隻有第4行 – avishai445

0

好多隻使用Regex.Split

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

那會給你一個文本字符串的第四行。