如何在 Atom 编辑器中搜索 <p> 元素内的双空格?

How to search for double spaces within <p> elements in Atom Editor?

我正在通过复制粘贴 Word 文档的段落来创建网页。当我复制粘贴时,句子的开头有两个 space,我想用一个 space 全局替换它们。但是,我不希望这影响我的缩进,这也是两个 spaces.

我正在尝试使用 Atom 的 'search with regex' 功能来完成此操作。我正在尝试输入表达式

<p>.+  .+</p>

但是,这不会产生任何匹配项:

但是应该有匹配项,如在常规搜索“ ”中 p 元素中突出显示的区域所示:

此外,从 Python shell 中的一个小实验来看,这个正则表达式似乎符合我要找的内容:

In [8]: re.findall(r'<p>.+  .+</p>', '  <p>Foo  Bar</p>')
Out[8]: ['<p>Foo  Bar</p>']

不过,从 Atom 的文档看来,搜索词应该是 Javascript RegExp 表达式。我尝试从文档 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) 中将其改编为 Javascript,但到目前为止没有成功。如何在 Atom 中进行此搜索?

您图片中突出显示的 space 位于 <p class="flow-text"> 内 - 具有 class 属性 - 而您正在搜索 <p>,但不包括属性。你应该这样做:

<p[^>]*>.+  .+</p>

然而,这会产生一个匹配项,您必须使用捕获组将两个 space 替换为一个。您可能想尝试更精确的方法。搜索:

[ ]{2,}(?=(?:(?!<p[^>]*>).)*<\/p>)

并替换为单个 space。

在将 <p>Foo Bar</p> 作为示例输入的情况下,以下查找和替换将起作用:

"Find in current buffer" = <p>(.+) (.+)</p>

"Replace in current buffer" = <p> </p>