【问题标题】:Find and replace using wildcard/regex characters in Notepad++在 Notepad++ 中使用通配符/正则表达式查找和替换
【发布时间】:2014-10-26 19:42:15
【问题描述】:

我有一个很长的 HTML 代码,其结构如下:

        <td class="tar">
      <div class="bubble in">
        Some Text, I want to keep! And maybe even an image.<br />
        <span class="time"><div style="text-align:right">17:14</span></div>
      </div>
    </td>
  </tr>

  <tr>
    <td class="tal">
      <div class="bubble out">
        Some Text, I want to keep! And maybe even an image.<br />
        <span class="time"><div style="text-align:right">17:15</span></div>
      </div>
    </td>
  </tr>

这是两个参与者“冒泡”和“冒泡”的聊天结构。 如您所见,每个“块”(聊天消息)都有一个时间码,如“17:14”。我想用空格字符和图像来扩展这个时间码,但仅限于来自“bubble in”的文本块。

我正在尝试使用 Notepad++ 中的查找和替换功能来完成此操作。

这是我想出的:

查找内容:

<div class="bubble in">[^"]*<span class="time"><div style="text-align:right">([0-9]*[0-9]*):([0-9]*[0-9]*)</span></div>

替换为:

<div class="bubble in">\1<span class="time"><div style="text-align:right">\2\3\4\5\6&#160<img src= "test.png" width="16" height="10" alt="0"/</span></div>

搜索有效,但替换 \1 不起作用。你能帮我吗? 我是 RedEx 的新手,通过搜索互联网并尝试解决了这个问题。 我想我已经很接近了,但只有随机文本的通配符 [^"] 还不正确。

【问题讨论】:

    标签: html regex replace notepad++ wildcard


    【解决方案1】:

    你可以试试:

    找到什么:

    (<div class="bubble in">.*?<span class="time"><div style="text-align:right">[0-9]{1,2}:[0-9]{1,2})(</span></div>)
    

    替换为:

    \1 <img src= "test.png" width="16" height="10" alt="0"/> \2
    

    【讨论】:

    • 非常感谢,它运行良好 =) 老实说,我不知道 \1 指的是一对括号“( )”。
    【解决方案2】:

    你能解释一下你想用 \1 做什么吗?每个反斜杠数字对应一个捕获组,即搜索模式中 ( ) 中包含的模式。您只有 2 个捕获组,但是当您达到 \6 时,您引用了 6 个唯一组。如果您发布了替换的输出,那可能会有所帮助。此外,使用 regex101.com 之类的网站可以帮助您调试正则表达式。

    【讨论】:

    • 谢谢,现在我终于明白 \1 指的是什么了 =) lpg 的回答已经帮助了我。
    猜你喜欢
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2015-01-11
    • 2012-12-02
    • 1970-01-01
    相关资源
    最近更新 更多