正则表达式:删除 HTML 标签之间的所有空行和

正则表达式:删除 HTML 标签之间的所有空行和

<p>Fie pentru a păstra prospețimea anumitor culori (ex. odinioară, ullraniarinul. Text.

Altădată se folosea usturoiul, deoarece conține și un ulei esențial, rare aderă prin dizolvarea la suprafață a grăsimilor și lotodală un mucegaiul cleios, sensibil la apă.</p>

输出必须是:

<p>Fie pentru a păstra prospețimea anumitor culori (ex. odinioară, ullraniarinul. Text. Altădată se folosea usturoiul, deoarece conține și un ulei esențial, rare aderă prin dizolvarea la suprafață a grăsimilor și lotodală un mucegaiul cleios, sensibil la apă.</p>

我的正则表达式在 notepad++ 中似乎很好,但是我需要一个更短的正则表达式(因为这个不适用于 Python)

寻找:(<p>)(.*?$)(\s+.*?)

替换为:\1\2

答案1

无论如何,您都不能使用更短的、有效的正则表达式。

这是一个始终有效的方法:

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

解释:

(?:             # non capture group
    <p>             # literally
  |               # OR
    \G(?!\A)        # restart from last match position, not at the beginning of file
)               # end group
(?:             # non capture group
    (?!</p>)        # negative lookahead, make sure we haven't </p> after
    .               # any character but newline
)*              # end group, may appears 0 or more times
\K              # forget all we have seen until this position (reset operator)
\R              # any kind of line break
\h*             # 0 or more horizontal spaces

替代品:

$0          # the whole match
:           # a colon

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案2

寻找:(^.*?)\s+\R\s+

替换为:\1 \1\x20

或者

寻找:(<p>.*?$)\s+(.*?</p>)

替换为:\1 \2

相关内容