擅长:python、mysql、java
<p>如果要匹配包含下一行的行,可以匹配所有行,并使用负lookahead断言下一行不是以crypto开头的。在</p>
<p>然后匹配一个新行并加密,直到行尾:</p>
<pre><code>^crypto pki certificate chain TP-self-signed-.*(?:\n(?!crypto).*)*\ncrypto.*
</code></pre>
<p><a href="https://regex101.com/r/MYABV0/1" rel="nofollow noreferrer">Regex demo</a></p>
<p>如果起始行应该与末尾的行相同,则可以使用带反向引用的第一行的捕获组:</p>
^{pr2}$
<p><a href="https://regex101.com/r/v6b76m/1" rel="nofollow noreferrer">Regex demo</a></p>
<p>你的代码可能看起来像</p>
<pre><code>pattern = r'^(crypto pki certificate chain TP-self-signed-.*)(?:\n(?!\1).*)*\n\1'
df=re.sub(pattern, '' , file, 0, re.MULTILINE)
</code></pre>