求正则: 在html的“纯文字”中查找并替换某几个目标字符串
要求如下:
查找范围:html的纯文字中,不包括“标签文字”,
查找并替换的目标字符串:例如下例中我要查找并替换 p 字符和 123 字符串,分别替换成<span class="高亮显示的文字">p</span>,<span class="高亮显示的文字">123</span>
例子:
作为查找大范围的html:
<img src="文件名中包含p字符.gif" alt="" /> <p>纯文字中包含p字符 <img src="文件名中包含p字符.gif" alt="" /> </p> 纯文字中包含123字符串 <img src="文件名中包含123字符串.gif" alt="" />
((?:<[^>]+>)*[^<>]*)(p|123)([^<>]*(?:<[^>]+>)*)
objRegExp.Replace(entire_string,"$1<span class='高亮显示的文字'>$2</span>$3")
Set objRegExp = New Regexp '设置匹配对象objRegExp.IgnoreCase = True '忽略大小写objRegExp.Global = True '设置为全文搜索string_of_RegExp="((?:<[^>]+>)*[^<>]*)(p|123)([^<>]*(?:<[^>]+>)*)" '正则表达式objRegExp.Pattern=string_of_RegExp entire_string=objRegExp.Replace(entire_string,"$1<span class='高亮显示的文字'>$2</span>$3")'entire_string是html字符串
Set objRegExp = New RegexpobjRegExp.IgnoreCase = TrueobjRegExp.Global = TrueobjRegExp.Pattern = "(p|123)(?![^<]*>)"entire_string = objRegExp.Replace(entire_string, "<span class='高亮显示的文字'>$1</span>")