正则表达式:从 --- 评论部分 --- 中删除单词

正则表达式:从 --- 评论部分 --- 中删除单词

我在博客中有很多以https://mywebsite.com。我想从特定评论部分删除这些链接(但在 /story1.html、/story2.html 等之前)

<!-- FLAGS1 --> <div class="cotarerField"> <div align="right">

<a href="https://mywebsite.com/story1.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; 
<a href="https://mywebsite.com/fr/story2.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; 
<a href="https://mywebsite.com/en/story3.html"><img src="index_files/flag_lang_en.jpg" title="en" alt="en" width="28" height="19" /></a>&nbsp; 
<a href="https://mywebsite.com/es/story4.html"><img src="index_files/flag_lang_es.jpg" title="es" alt="es" width="28" height="19" /></a>&nbsp; 
<a href="https://mywebsite.com/pt/story5.html"><img src="index_files/flag_lang_pt.jpg" title="pt" alt="pt" width="28" height="19" /></a>&nbsp; 
<a href="https://mywebsite.com/ar/story6.html"><img src="index_files/flag_lang_ae.jpg" width="28" height="19" title="ar" alt="ar" /></a>&nbsp; 
<a href="https://mywebsite.com/zh/story7.html"><img src="index_files/flag_lang_zh.jpg" width="28" height="19" title="zh" alt="zh" /></a>&nbsp; 
<a href="https://mywebsite.com/hi/story8.html"><img src="index_files/flag_lang_hi.jpg" width="28" height="19" title="hi" alt="hi" /></a>&nbsp; 
<a href="https://mywebsite.com/de/story9.html"><img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; 
<a href="https://mywebsite.com/ru/story10.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>
</div>
<!-- FLAGS1 -->

或者你可以在这里查看 https://pastebin.com/Dtt3KjME

预期结果(删除全部https://mywebsite.com/

<!-- FLAGS1 --> <div class="cotarerField"> <div align="right">

<a href="story1.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; 
<a href="fr/story2.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; 
<a href="en/story3.html"><img src="index_files/flag_lang_en.jpg" title="en" alt="en" width="28" height="19" /></a>&nbsp; 
<a href="es/story4.html"><img src="index_files/flag_lang_es.jpg" title="es" alt="es" width="28" height="19" /></a>&nbsp; 
<a href="pt/story5.html"><img src="index_files/flag_lang_pt.jpg" title="pt" alt="pt" width="28" height="19" /></a>&nbsp; 
<a href="ar/story6.html"><img src="index_files/flag_lang_ae.jpg" width="28" height="19" title="ar" alt="ar" /></a>&nbsp; 
<a href="zh/story7.html"><img src="index_files/flag_lang_zh.jpg" width="28" height="19" title="zh" alt="zh" /></a>&nbsp; 
<a href="hi/story8.html"><img src="index_files/flag_lang_hi.jpg" width="28" height="19" title="hi" alt="hi" /></a>&nbsp; 
<a href="de/story9.html"><img src="index_files/flag_lang_de.jpg" width="28" height="19" title="de" alt="de" /></a>&nbsp; 
<a href="ru/story10.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>
</div>
<!-- FLAGS1 -->

答案1

  • Ctrl+H
  • 找什么:(?:\A[\s\S]*<!-- FLAGS1 -->|\G)(?:(?!<!-- FLAGS1 -->)[\s\S])+?\Khttps://mywebsite\.com/(?=[\s\S]*<!-- FLAGS1 -->)
  • 用。。。来代替:LEAVE EMPTY
  • 检查环绕
  • 检查正则表达式
  • Replace all

解释:

(?:                         # non capture group
  \A                        # beginning of file
  [\s\S]*                   # 0 or more any character
  <!-- FLAGS1 -->           # literally
 |                          # OR
  \G                        # restart from last match position
)                           # end group
(?:                         # non capture group (Tempered Greedy Token)
  (?!<!-- FLAGS1 -->)       # negative lookahead, make sure we haven't <!-- FLAGS1 -->
  [\s\S]                    # any character
)+?                         # end group, appears 1 or more times, not greedy
\K                          # forget all we have seen until this position
https://mywebsite\.com/     # text to be removed
(?=[\s\S]*<!-- FLAGS1 -->)  # positive lookahead, make sure we have <!-- FLAGS1 -->  after

鉴于:

<a href="https://mywebsite.com/ru/story10.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>

<!-- FLAGS1 --> <div class="cotarerField"> <div align="right">

<a href="https://mywebsite.com/story1.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; 
<a href="https://mywebsite.com/fr/story2.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; 
</div>

<!-- FLAGS1 -->

<a href="https://mywebsite.com/ru/story10.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>

给定示例的结果:

<a href="https://mywebsite.com/ru/story10.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>

<!-- FLAGS1 --> <div class="cotarerField"> <div align="right">

<a href="story1.html"><img src="index_files/flag_lang_ro.jpg" title="ro" alt="ro" width="28" height="19" /></a>&nbsp; 
<a href="fr/story2.html"><img src="index_files/flag_lang_fr.jpg" title="fr" alt="fr" width="28" height="19" /></a>&nbsp; 
</div>

<!-- FLAGS1 -->

<a href="https://mywebsite.com/ru/story10.html"><img src="index_files/flag_lang_ru.jpg" width="28" height="19" title="ru" alt="ru" /></a>

屏幕截图(之前):

在此处输入图片描述

屏幕截图(之后):

在此处输入图片描述

相关内容