2

我希望有人可以帮助解决这个小问题。

我有一个 HTML 字符串,下面显示了一个简化的示例,我需要在其中查找和替换文本。但前提是该文本没有出现在 HTML 标记中,即“<”和“>”。

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
In this text I'd like to replace the word "in" with another piece of text instead.
</td>
</tr>
</table>

例如,我想用下面的 span 字符串替换单词“in”,从而得到下面的完整 HTML。

<span class="highlight">in</span>


<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<span class="highlight">In</span> this text I'd like to replace the word "<span class="highlight">in</span>" with another piece of text <span class="highlight">in</span>stead.
</td>
</tr>
</table>

我只希望替换出现在“>”和“<”之间的文本的原因是因为我不希望通过替换“cellspacing”和“cellpadding”属性中的“in”一词来破坏 HTML。

如果使用正则表达式无法解决此问题,我也愿意在 VB.NET、Javascript 或 JQuery 中执行此操作。

提前感谢您提供的任何帮助!

解决了!

感谢 MiddleCSharp 的智慧

Dim rgx As New Regex(String.Format("\b{0}\b", SearchText, RegexOptions.IgnoreCase) 
ltrPageCopy.Text = rgx.Replace(HTMLText, String.Format("<span class=""highlight"">{0}</span>", SearchText))
4

1 回答 1

0

如果您只想替换单词in,不包括包含“in”的单词,请使用:

\bin\b

例如,http ://gskinner.com/RegExr/?370qr

要替换><标签内的任何内容,无论它是什么类型的标签,试试这个

寻找:

(<.*?>)(.*?)(</.*?>)

代替:

1YOUR_TEXT美元 3 美元

YOUR_TEXT你想把里面的内容改到哪里><

这是演示http://regexr.com?370r1

于 2013-10-31T23:58:41.207 回答