正则表达式 过滤网址
用的是C# 在线等高手。!!!! 展开
正则表达式,过滤出所有超链接除了一个url,例如:
<a href= 'http://www.abc.com/'> abc.com </a><br /><a href= 'http://www.edf.com/'> edf.com </a>
过滤:变为abc.com <br /><a href= 'http://www.edf.com/'> edf.com </a>没人知道怎么做么,要保留edf.com的超级链接,过滤掉其他的所有网址的超级链接。
FunctionautoLink(str)
Setra=NewRegExp
ra.IgnoreCase=True
ra.Global=True
ra.Pattern = "<a[^>]+>(.+?)<\/a>"
autoLink=ra.replace(str,"$1")
ENDFunction
扩展资料:
注意事项:
正则表达式,也称为正则表达式。这是计算机科学中的一个概念。
正则表达式通常用于检索和替换符合模式(规则)的文本,许多编程语言都支持使用正则表达式进行字符串操作。
例如Perl中内置了一个强大的正则表达式引擎。正则表达式的概念最初是由诸如(sed和GREp)这样的Unix工具推广的。
正则表达式通常缩写为“regex”。单数形式是regexp、regex,复数形式是regexps、regexes和regexen。
<a href= 'http://www.abc.com/'> abc.com </a><br /><a href= 'http://www.edf.com/'> edf.com </a>
过滤后,变为abc.com <br /><a href= 'http://www.edf.com/'> edf.com </a>没人知道怎么做么,要保留edf.com的超级链接,过滤掉其他的所有网址的超级链接。
Function autoLink(str)
Set ra = New RegExp
ra.IgnoreCase = True
ra.Global = True
ra.Pattern = "<a[^>]+>(.+?)<\/a>"
autoLink = ra.replace(str,"$1")
END Function
这样子,会过滤掉所有的链接的。
([\w-]+\.)+[\w-]+.([^a-z])(/[\w-: ./?%&=]*)?|[a-zA-Z\-\.][\w-]+.([^a-z])(/[\w-: ./?%&=]*)?
好了,又又一次回复,不好意思,我是新手,慢慢一点一点深入
(<TD[^>]*>)[\r\n\s]*<P[^>]*>([^>]*)</P>\s?(</TD>)
这正则表达式完全搞定了,用 $1$2$3 替换
re.Pattern = "(<TD[^>]*>)[\r\n\s]*<P[^>]*>([^>]*)</P>\s?(</TD>)"
Data = re.Replace(Data,"$1$2$3")
请先备份,以防意外。
=================================================================
又一次回复,嘿嘿,写出一个,但要有条件:要删的P标签要和</TD>同一行,并且在前面。(只能想到这个笨方法了,靠</TD>来辨别是不是在TD里)
</?P[^>]*>(?=.*</TD>)
请先备份,否则有意外,别怪我。
========================================================
不知怎的 不支持(?<=exp),有点难缠。恕小生学艺未精。
期待高手,关注中……
========================================================
处理这些固定的字符串用Replace就好了
a = "<TD width=69 rowSpan=2> <P class=MsoNormal>日期 </P> </TD> "
a = Replace(Replace(a, "<P class=MsoNormal>", ""), "</P>", "")
MsgBox a
=========如果你非要用正则表达式,也拿你没办法===========
a = "<TD width=69 rowSpan=2> <P class=MsoNormal>日期 </P> </TD>"
Set re = CreateObject("VBScript.RegExp")
re.IgnoreCase = False '是否区分大小写
re.Global = True '只匹配搜索到的第一个还是全部
re.Pattern = "</?P[^>]*>" '定义正则表达式,不管P标签里面等于什么鬼都好。
a = re.Replace(a, "") '用空字符""替换匹配到的
MsgBox a
你写的啥,复制粘贴。。。。