我希望有人可以帮助解决这个小问题。
我有一个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))
答案 0 :(得分:0)
如果您只想替换包含“in”的字词in
,请使用:
\bin\b
示例,http://gskinner.com/RegExr/?370qr
要替换><
标记内的任何内容,无论它是什么类型的标记,请尝试使用
查找
(<.*?>)(.*?)(</.*?>)
替换:
$ 1 YOUR_TEXT
$ 3'/ P>
YOUR_TEXT
是您要将><
内的内容更改为。