content=sContent1
regstr="src\=.+?\.(gif|jpg)"
url=Replace(Replace(Replace(RegExp_Execute(regstr?content)?"'"?"")?""""?"")?"src="?"")
Response.Write(url)
Response.end
'返回匹配值
Function RegExp_Execute(patrn? strng)
Dim regEx? Match? Matches?values '建立变量。
Set regEx = New RegExp '建立正则表达式。
regEx.Pattern = patrn '设置模式。
regEx.IgnoreCase = true '设置是否区分字符大小写。
regEx.Global = True '设置全局可用性。
Set Matches = regEx.Execute(strng) '执行搜索。
For Each Match in Matches '遍历匹配集合。
values=values&Match.Value&"?"
Next
RegExp_Execute = values
End Function
方法2
Content="<img height=11 src=http://a.gif width=10>adfas<img height=11 src=v.gif width=10>dfasf"
response.end()
function savepic(str)
content=str&""
regstr="src\=.+?\.(gif|jpg)"
url=Replace(Replace(Replace(RegExp_Execute(regstr?content)?"'"?"")?""""?"")?"src="?"")
savepic=url
end function
Function RegExp_Execute(patrn? strng)
Dim regEx? Match? Matches?values '建立变量。
Set regEx = New RegExp '建立正则表达式。
regEx.Pattern = patrn '设置模式。
regEx.IgnoreCase = true '设置是否区分字符大小写。
regEx.Global = True '设置全局可用性。
Set Matches = regEx.Execute(strng) '执行搜索。
For Each Match in Matches '遍历匹配集合。
values=values&Match.Value&"?"
Next
RegExp_Execute = values
End Function
方法3
http://[a-z0-9A-Z.?/_]*.(jpg|jpeg|gif|png)
今天继续编写新网站下的文章发布系统,其中需要一个功能,就是显示焦点新闻中的图片,本来可以在录入时单独上传一个与新闻搭配的图片,这是最简单的,但为了给自己一个挑战,我打算做成录入带有图片的新闻后,程序会自动提取正文中的第一个图片的地址,鼓捣了半天,成果如下:
$p = '/
$f = preg_match($p?$c?$re);
echo $re[2];
此需求的难点在于,通过FCKeditor添加的图片中,其alt属性的位置是不固定的:
<img src="url" alt="" />或<img alt="" src="url" />
因此,正则表达式必须完全兼容这2种情况。
唉,看上去并不复杂的正则,却鼓捣了这么久,看来对它的掌握还是太少啊,不过每次使用正则表达式,都有不同的收获,很奇妙。