2015-06-03 84 views
1

我有一個字符串匹配從串最後線n \\ N [^]] b

\n\\\\\n[^] ] b 

(litteraly)

\\ [^] ] b

我想最後匹配此字符串的一行。

我試過使用這個正則表達式\n.*$,它不工作。如果我使用\\\\n.*$它會工作,但我需要找到一些通用的解決方案,因爲如果我有像\nX\n[^] ] b這樣的字符串,它將無法工作。

謝謝你的建議。

編輯: 我想在sed模式空間中匹配此模式。所以我不知道它是否與普通的正則表達式newLine字符相同。 它看起來像:

PATT:\n\\\\\n[^] ] b$ 
s/\n.*$// 
+0

[你的正則表達式也適用於'\ nX \ n [^]] b'](https://regex101.com/r/mW0iS8/1)。我認爲問題或者是方法,或者是最初的'\ n'。請提供您使用的語言和代碼。 –

+0

如果你的字符串中有'\\ n',並且你想匹配'\ n'字符串,我想你需要這個正則表達式:['(?<= \\ n)(?!。* \\ n) * $'](https://regex101.com/r/eA1lD2/2)。無論如何,它仍然不清楚你想要什麼。 –

回答

0
[^\n]*$ 

您可以通過簡單地使用this.See演示得到的最後一行。

https://regex101.com/r/pG1kU1/27

+0

問題是我有\ n字符的字符串。它就像https://regex101.com/r/pG1kU1/28,然後它將匹配所有模式。我不確定\ n字符是否像newLine字符一樣。 – enkor

+0

@ enkor https://regex101.com/r/pG1kU1/29 – vks

+0

這一個是好的。謝謝 :] – enkor

0
sed '#buffer is with your sample data 
/\(\n\)\{0,1\}\([[:alnum:][:blank:][:punct:]]*\)$/ s//Last New line: \1 Last -line \2/' 
  • POSIX版本
  • 允許與1行的字符串只(同意不是你的樣品)
  • 允許有或沒有最後一個新行