正则表达式删除文本文件的前2行

时间:2015-09-10 21:46:14

标签: regex

我试图只删除文本文件的前两行。

我尝试使用\A.*,但这会获得第一行并删除其余部分。

有没有办法做反向?

2 个答案:

答案 0 :(得分:1)

这可能不是最方便的方式,但可以使用Regex:

^.*\n.*\n([\s\S]*)$

使用默认设置(既不是单行也不是多行修饰符)'。'捕获除了换行符之外的所有内容。因此,.*\n捕获一行,包括新行字符。重复两次,我们在第三行的开头。现在捕获所有字符,包括新行字符([\s\S]是此行为的一个很好的解决方法),直到文件$结束。

然后由第一个捕获组替换

\1

除了前两行之外你还有其他所有东西。

详细信息取决于你的正则表达式引擎,你如何给出替代字符串。根据平台或文件中使用的新行字符,您可能需要将\n\r\n\r或与其匹配的(\r\n?|\n)进行交换

这是一个有效的Demo

答案 1 :(得分:0)

具体说明新行和非新行号并将匹配替换为空白:

\A([^\r\n]*\n){2}

注意:这对行结束样式很敏感。将窗口的最后\n更改为(\r\n)

参见演示。