2015-06-03 47 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行的字符串只(同意不是你的样品)
  • 允许有或没有最后一个新行