【问题标题】:How to search for double spaces within <p> elements in Atom Editor?如何在 Atom 编辑器中的 <p> 元素中搜索双空格?
【发布时间】:2018-09-19 05:48:48
【问题描述】:

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

我正在尝试通过使用 Atom 的“使用正则表达式搜索”功能来做到这一点。我正在尝试输入表达式

<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 中进行此搜索?

【问题讨论】:

  • NotePad++,为这类事情创造了奇迹。复制进去,修改,复制出来。
  • 注意html的解释,忽略空格的加倍。所以不需要删除。

标签: javascript regex atom-editor


【解决方案1】:

在将&lt;p&gt;Foo Bar&lt;/p&gt; 作为样本输入的情况下,以下查找和替换将起作用:

"在当前缓冲区中查找" = &lt;p&gt;(.+) (.+)&lt;/p&gt;

"在当前缓冲区中替换" = &lt;p&gt;$1 $2&lt;/p&gt;

【讨论】:

    【解决方案2】:

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

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

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

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

    并替换为一个空格。

    【讨论】:

      猜你喜欢
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多