正则表达式 - 在HTML标记中未包含时替换HTML字符串中的文本

时间:2013-10-31 23:53:56

标签: javascript jquery html regex vb.net

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

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

我只希望在“&gt;”之间出现文字替换的原因和“&lt;”因为我不想通过在“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))

1 个答案:

答案 0 :(得分:0)

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

\bin\b

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

要替换><标记内的任何内容,无论它是什么类型的标记,请尝试使用

查找

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

替换:

$ 1 YOUR_TEXT $ 3'/ P>

YOUR_TEXT是您要将><内的内容更改为。

的位置

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