正则表达式:从一个特定的html标记中查找/删除所有这些特定的单词

正则表达式:从一个特定的html标记中查找/删除所有这些特定的单词

我有这个 html 标签 <p class="text_obisnuit2"></p>在这个标签中有一些单词(其他标签),例如<strong></strong>。还有<em></em>

例子:

<p class="text_obisnuit2"><strong><em> My name is love. </em><strong></strong></p>

我想删除所有<strong></strong>特定的<p class="text_obisnuit2"></p>

所以输出应该是:

<p class="text_obisnuit2"><em> My name is love. </em></p>

答案1

  • Ctrl+H
  • 找什么:(?:<p class="text_obisnuit2">|\G(?!^)).*?\K</?strong>(?=.*?</p>)
  • 用。。。来代替:LEAVE EMPTY
  • 取消选中 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

(?:                             # non capture group
    <p class="text_obisnuit2">    # literally
  |                             # OR
    \G                            # restart from last match position
    (?!^)                           # if not at the beginning
)                               # end group
.*?                             # 0 or more any character
\K                              # forget all we have seen until this position
</?strong>                      # <strong> OR </strong>
(?=.*?</p>)                     # positive lookahead, make sure we have </p> after

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案2

  • Ctrl+H打开“查找和替换”。
  • 在“查找内容”中,键入<p class="text_obisnuit2">(<strong>)(.*)(</strong>)</p>
  • 在“替换为”中输入<p class="text_obisnuit2">(\2)</p>
  • 在搜索模式下检查正则表达式。
  • 单击“全部替换”。

解释

我们将开始和结束标签及其内容分组<strong>。这里的内容是\2,因此在替换时我们除了\1并且\3只保留\2

替换前

在此处输入图片描述

替换对话框

在此处输入图片描述

更换后

在此处输入图片描述

相关内容