正则表达式:从 html 标签中选择并删除数字

正则表达式:从 html 标签中选择并删除数字

我遇到了一个小问题。我需要选择并删除所有数字以及_html 标签

<p class="BEST"><em>a Создание всего, что только когда человек  __2_2160_____</em></p>
<p class="BEST"><em>оставляет _за собой 3456 метафизическое __значение судьбы, 566_ которая проходит проверку времени_</em></p>

我的正则表达式似乎不起作用:

寻找:(?:<p class="BEST"|\G(?!^))[_]\d+\K\d+[_](?=.*?</p>)

输出:

<p class="BEST"><em>a Создание всего, что только когда человек</em></p>
<p class="BEST"><em>оставляет за собой метафизическое значение судьбы, которая проходит проверку времени</em></p>

答案1

以下是一种方法:

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

解释:

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

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

相关内容