导航:首页 > 编程语言 > php正则表达式匹配url

php正则表达式匹配url

发布时间:2023-03-19 09:51:00

php 正则表达式 提取指定超链接中的url

preg_match_all('/<a[^>喊卖]+href="([^"]+)"[^>]+class="green"
[^>郑中逗培备]+/Ui', $str, $arr);

print_r($arr[1]);

㈡ 哪位大神能帮我读一下这段正则表达式,php中的,我知道是关于url解析的,后面是解析控制器,只是落

我不会php,但也可以为您解答。

前面你应缺亮郑该懂了,就是原字匹配,

我猜括号的地方才是你看不懂的。

在正则表达式里,括号匹配到的内容可以存入分组内,

比如有一段正则

qq:(d+)nick:([a-zA-Z]+)

用来匹配文本

qq:1014359461nick:Wizard

匹配完后,

第一个括号的表达式‘(d+)’匹配到的内容‘1014359461’会存入分组1里,

第二个括号的表达式‘([a-zA-Z]+)’匹配到的内容‘Wizard’会存入分组2里键源,

如果再有括号,就继续存入分组3、分组4...

不过这样会有上限,也不是很清晰

所以,可以使用另一种方法,看如下正则

qq:(?<qq>d+)nick:(?<nick>[a-zA-Z]+)

还是匹配刚才那段文本,匹配成功后,

不再有刚才的分组1和分组2,取而代之的是 名为‘qq’和‘nick’这两个分组,后面我简称它们为 $qq、$nick

存入 $qq 的内容依然是之前 分组1 里的 ‘1014359461’

存入 $nick 的内容依然是之前 分组2 里的 ‘Wizard’



再谈谈括号内的‘|’符号,如下正则

(css|js|flash)

它含义是,此处位置能匹配的只有

‘css’或者‘js’,或者‘flash’,否则匹配不成功

匹配成功后会存入 一个分组内


如你发的图里的

(?<controller>(css|js|flash))

这部分含义如前一条所说那样,只不过会把匹配到的值存入 $controller 分组内


接下来,讲‘[...]’

[123abc]

这个正则表示只匹配‘123abc’里的其中一个字符,

如果有用‘-’且不在第一位则有特殊含义(第一位是普通符号),如下

[1-3a-c]

这个正则就和上一条正则功能是一样的,表示允许匹配中括号里的一个字符,范围是从 1到3,或者 a到c


你的代码里

[a-zA-Z0-9/]

表示匹配一个字符,该字符的范围是 a-z(小写字母),或者A-Z(大写字母),或者0-9(一位数字),或者后面那个‘/’字符


而后面加个+符号

[a-zA-Z0-9/]+

则是此处正则必须匹配一个 字母或数字 或者多个,并尽量匹配多个


那么你代码里的

(?<name>[a-zA-Z0-9/]+)

就是将前前一条正则匹配到的内容存入 $name 分组中去


我不懂PHP,但知道这里的 ‘/(’ 是转义字符,这个是php语法里的东西,你要注意这一点

还有前面提到那么多次“分组“这个词,那这些分组怎么获取呢,这个是php语言里的东西,你可以去查一下

另,据我所值‘(?<name>...)’这伏颂样的语法也可以这么写‘(?'name'...)’,不知道这个能在php里通过不。


至此,你的疑惑应该解开了吧,很用心写的,请采纳哈,谢谢~

㈢ php正则表达式 正则匹配网址是否带http:// https://

$str = "https://xxxxxxxxx";
if(preg_match("/^(http:\/\/|https:\/\/).*$/",$str)){
echo "yes";
}

亲测是可以的,你可以自己拿去试一试

㈣ php 正则表达式怎么把图片URL匹配出来呢

使用preg_match_all函数,即可实现你的要求。代码如下:

$str='<imgdatasrc="http://mm..com/mmbiz/2ItUdTx3iamOFK8QVqofnQ/640?tp=webp"data-s="300,640"data-ratio="0.625"data-w="400"style="box-sizing:border-box!important;width:auto!important;word-wrap:break-word!important;visibility:visible!important;"/>';

$pattern='/<img.*src="(.*?)"/';

preg_match_all($pattern,$str,$matches);

echo$matches[1][0];

//返回:http://mm..com/mmbiz/2ItUdTx3iamOFK8QVqofnQ/640?tp=webp

㈤ PHP-php中如何使用正则表达式匹配URL中的域名

<?php
//从URL中取得主机名
preg_match("/^(http://)?([^/]+)/i",山兄判"IP/index.html"尘宴,$matches);
$host=$matches[2];
//从逗改主机名中取得后面两段
preg_match("/[^./]+.[^./]+$/",$host,$matches);
echo"domainnameis:{$matches[0]} ";
?>

㈥ PHP判断变量是否为正确的url的正则表达式怎么写

if (!preg_match('/http:\/\拿培/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is',$变量)){
echo '凯敏悄盯渣网页错误';
}把$变量替换成你的变量就可以了

㈦ php正则表达式[quote][size=2][url=。。...[/quote]怎么匹配

$string = '[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=848579&ptid=6666][color=#999999]撒旦法撒旦法发表于 2014-11-10 23:06[/color][/url][/size]
ask江东父老卡双贺卜打冠军啊圣诞节阿莱克斯禅中穗的结果...[/quote]';

$st = '/\[quote\][\s\S]*\培培[\/quote\]/';

preg_replace( $st, '', $string );

㈧ 在php中怎样用正则表达式从一个字符串中提取url地址

1楼纳什从源码中找超链接。

楼主说从字符串中找url,这个真的是不好实现。开头可以凭"http://或者https://",但是结尾就不好说了,如果只针对首页那就没有文件名,地址里有可能以汉字结尾,及时有指定文件名,万一有get值是汉字呢?并且还是结尾。。
关键就是结尾。。
“http://.com/空间” (这个成立。。我的空间就是汉字地址。)
“http://.com/page.php?id=1&ac=网络” (这个成立,有些小网站传递一个标题之类的)
还有get值可以是空的,万一“=”后面是我们其他内容而不属于url,而且还是英文???
“http://.com/page.php?id=1&ac=url url” (这个也成立,不能以空格过滤呀。。)
这个问题的答案我也等。。

提交了才发现,网络都不能实现这一点,答案难寻呀。。呵呵

㈨ php如何使用正则表达式匹配url图片啊

$image='<imgsrc="/avatar/100/r6s1g11.jpg"/>';
preg_match('/src="(.*?(jpg|jpeg|gif|png))/',$image,$url);
echo$url[1];

网页上的图片都是使用IMG标签加载的,所以在匹配的时候是以src=" 开始匹配,很多人会觉得为什么不是以 http:// 开始匹配,那是因为图片地址会有相对地址(如:"/xxx/xxx.jpg")和绝对地址(如:"http://www.xxx.com/xxx/xxx.jpg")两种情况,相对地址是没有http:// 的,所以为了这两种情况都能匹配,故以src=" 是最好的。

".*" 是匹配多个字符的意思,?号的意思是只匹配到第一个出现的jpg或jpeg、gif、png。

因为图片有很多格式类型,所以用"(jpg|jpeg|gif|png)"来匹配多个类型,"|"是或者的意思。

㈩ php如何使用正则表达式匹配url图片啊

//抓取网页
echo" 抓取网页======================================= ";
functiongetHTTPS($url){
$ch=curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_REFERER,$url岩蚂);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
$result=curl_exec($ch);
curl_close(粗掘埋$ch);
return$result;
}
$result=getHTTPS("");

$array=array(
'img',
'script'散闭,
'link'
);

$num=count($array);
for($i=0;$i<$num;++$i){
echo$array[$i]."-------------------------------- ";
if(preg_match_all("/<".$array[$i]."[^>]*>/i",$result,$m)){
for($j=0;$j<count($m[0]);$j++){
echo$m[0][$j]." ";
}
}
}

阅读全文

与php正则表达式匹配url相关的资料

热点内容
lk4102加密芯片 浏览:586
怎么更改app店面 浏览:487
设备部门如何做好服务器 浏览:849
androido下载 浏览:476
神奇高量战法副图源码 浏览:830
汇编语言设计凯撒密码加密器 浏览:392
主次梁加密是加在哪里 浏览:662
模板匹配算法matlab 浏览:823
外地程序员去北京 浏览:24
安卓机换苹果12如何转移数据 浏览:418
互联网ntp服务器地址及端口 浏览:613
pdf到word转换器 浏览:269
飞行解压素材 浏览:498
51单片机指令用背吗 浏览:936
unityai算法 浏览:834
我的世界ice服务器如何打开pvp 浏览:975
c语言编程如何做标记 浏览:884
python数据分析实战pdf 浏览:985
u盘插入文件夹 浏览:918
华为amd云服务器 浏览:497