如何在Atom Editor中的<p>元素中搜索双空格?

时间:2018-04-09 18:39:41

标签: javascript regex atom-editor

我通过复制粘贴Word文档的段落来创建网页。当我复制粘贴时,句子的开头前面有两个空格,我想用一个空格全局替换。但是,我不希望这会影响我的缩进,这也是两个空格。

我试图通过使用Atom&#39;搜索正则表达式&#39;来尝试这样做。特征。我试图输入表达式

<p>.+  .+</p>

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

enter image description here

但是,应该有匹配,正如常规搜索中p元素中突出显示的区域所示。 &#39;:

enter image description here

此外,通过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工作中进行此搜索?

2 个答案:

答案 0 :(得分:2)

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

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

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

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

并替换为单个空格。

答案 1 :(得分:2)

如果将<p>Foo Bar</p>作为样本输入,则以下查找和替换将起作用:

&#34;在当前缓冲区中查找&#34; = <p>(.+) (.+)</p>

&#34;替换当前缓冲区&#34; = <p>$1 $2</p>

Example inputs in Atom