我使用Notepad ++,我需要找到标签
<font face="arial" size="4">
,直到
</font></td>
我试过了:
<font face="arial" size="4">(.*)</font>(.*)</td>
但它找到了从第一行到最后一行的所有内容。但我需要它找到第一个“font face”与其相邻或最接近的/ font / td标签的第一个匹配,然后在同一文本中找到下一个..等等。
示例文字:
<font face="arial" size="4">text text text...sdfklj@skdjhgls:d</font></td>
<font face="arial" size="4">some text<br />
any more text
</font> </td>
morel;owkjdgkd dhfksg h
<font face="arial" size="4">some text</font><p>
more text</font> </td>
然后我需要用以下代码替换这两个标签: 第一个用
<span style="font-size: 14pt; font-family: Times; lang=en-us">
和第二个:
</span></td>
答案 0 :(得分:0)
试着偷懒:
<font face="arial" size="4">[\s\S]*?</font>[\s\S]*?</td>
使用[\s\S]
匹配任何字符(包括换行符),并添加延迟量词?
,以便在</font>
和</td>
出现之前尽可能多地匹配。< / p>
如果</font>
和</td>
代码之间只有空格,您显然可以使用\s*
代替[\s\S]*?
。 (我注意到您的示例html格式错误,因为它包含</font>
标记后的</font>
标记。)
您可以使用这些内容来进行替换:
<font face="arial" size="4">([\s\S]*?)</font>([\s\S]*?)</td>
<span style="font-size: 14pt; font-family: Times; lang=en-us">\1</span>\2</td>