我在正则表达式上表现不佳,说过,我正在尝试制作一个正则表达式,允许所有类型的网址类型:
$regex = '~mydomain.ide.com/polopoly_fs/([a-z0-9\\.\\_\\-]+(\\.gif|\\.png|\\.jpe?g))~i';
//包括所有格式
目的是获取具有如下功能的网页图片:
/**
* Get the Images
* @param unknown $html
*/
function getImages($html) {
echo "Hello from getImages <br/>";
$matches = array();
$regex = '~http://mySite.ide.com/([a-z0-9\\.\\_\\-]+(\\.gif|\\.png|\\.jpe?g))~i'; //include all formats
preg_match_all($regex2, $html, $matches);
foreach ($matches[1] as $img) {
saveImg($img);
}
}
但是我需要一个正则表达式,它使用这个结构的URL:
http://mydomain.ide.com/polopoly_fs/1.573651!imageManager/3188890795.jpg
有人可以帮忙吗?
谢谢
答案 0 :(得分:1)
这样的事情应该足够了。
/(.*.com\/[a-z_-]+\/[0-9\.a-z!]+\/[a-z0-9_-]+\.(gif|jpg|jpeg|png))/i
这是PHP代码
<?php
$s = "http://mydomain.ide.com/polopoly_fs/1.573651!imageManager/3188890795.jpg";
preg_match("/(.*.com\/[a-z_-]+\/[0-9\.a-z!]+\/[a-z0-9_-]+\.(gif|jpg|jpeg|png))/i", $s, $arrMatches);
echo print_r($arrMatches[0], true);
.com
tld,但可以进行调整以匹配更多答案 1 :(得分:1)
现在好了,我可以多说一点。
如果我理解你想要的是搜索一个完整的html图片网页完全有资格保存它们,不关心名称或它们的位置。
function getImages($html) {
echo "Hello from getImages <br/>";
$matches = array();
$regex = '~http://.*/[a-z0-9._-]+(?:\.gif|\.png|\.jpe?g)~i'; //include all formats
preg_match_all($regex, $html, $matches);
foreach ($matches as $img) {
saveImg($img[0]);
}
}
你不必在这里捕获任何东西,匹配将被启用,唯一需要被转义的char是。匹配.gif .png等中的littelal点。
如果我误解了,请随意评论,我会适应