0

我使用记事本++,我需要找到标签

<font face="arial" size="4">

直到

</font></td>

我试过这个:

<font face="arial" size="4">(.*)</font>(.*)</td>

但它会找到从第一行到最后一行的所有内容。但我需要它找到第一个“字体”与其相邻或最接近的 /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>
4

1 回答 1

0

试试偷懒:

<font face="arial" size="4">[\s\S]*?</font>[\s\S]*?</td>

用于匹配任何字符,包括换行符,并在出现之前[\s\S]添加惰性量词?以尽可能少地匹配。</font></td>

如果</font>and</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>
于 2013-01-17T10:53:37.900 回答