2014-09-02 77 views
1

使用通配符/正则表达式的字符替换我有一个很长的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”时间码。我想用一个空格字符和一个图像来扩展这个时间码,但仅限于来自“冒泡”的文本块。

我正试图用Notepad ++中的find &替换功能来完成此操作。

这里是我想出了:

查找内容:

<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的新手,通过搜索互联网并试图解决这个问题。 我觉得我很接近,但只有通配符[^“]为随机文本尚未正确

回答

0

你可以尝试:

查找内容:

(<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 
+0

非常感谢,它工作完美=) 说实话,我不知道\ 1提到了一对括号“()”。 – user363808 2014-09-03 08:59:16

0

你能解释一下你要使用\ 1是什么?每个反斜杠号对应一个捕获组,这是包含在()中的搜索模式的模式。您只有2个捕获组,但当您进入\ 6时,您正在引用6个独特的组。如果您公布了替代的输出,那可能会有所帮助。同样使用像regex101.com这样的网站可以帮助你调试你的正则表达式。

+0

谢谢,现在我终于知道了\ 1指的是什么=) lpg的回答已经帮了我。 – user363808 2014-09-03 09:02:07