如何在正则表达式中使用负向前瞻来删除不需要的行

22

关于使用负向先行断言,我需要帮助。我正在使用Notepad++,我想删除除包含<title>(.*)</title>的行以外的所有行。

我尝试了几种方法,但都没有成功。

^.*(?!<title>).*</title>
^.*(?!<title>.*</title>)
1个回答

29

你已经接近了:

^(?!.*<title>.*</title>).*

通过这个正则表达式^.*(?!<title>.*</title>),正则引擎会找到一些位置,它无法找到<title>.*</title>(行末是一个有效的位置)。

您需要确保从行的开头开始,没有办法在该行的任何位置找到<title>.*</title>。这就是我的正则表达式所做的。


3
在行末添加\r\n(Windows系统)或\n(Linux系统),以删除该行。 - Raghavendra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接