在Notepad++中使用通配符/正则表达式字符查找和替换



我有一个很长的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>

这是两个参与者"冒泡进来"one_answers"冒泡出去"的聊天结构。正如你所看到的,每个"块"(聊天信息)都有一个类似"17:14"的时间码。我想用一个空格字符和一个图像来扩展这个时间码,但只针对来自"bubble-in"的文本块。

我正试图用find&替换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">23456&#160<img src= "test.png" width="16" height="10" alt="0"/</span></div>

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

您可以尝试使用:

查找内容:

(<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个捕获组,但当您转到\6时,您引用了6个唯一的组。如果你发布了替换的输出,那可能会很有帮助。此外,使用类似regex101.com的网站可以帮助您调试regex。

最新更新