求一个 匹配 src 里面 内容的正则
如题<div id="productMainImage" class="centeredContent back">(?<content>[\s\S]*?)</a>
(?<content>[\s\S]*?) 这个怎么改 才能匹配 开头字符串<div id="productMainImage" class="centeredContent back">和结束字符串</a> 里面 src 的内容
下面是 开头字符串与结束字符串之间的内容
<script language="javascript" type="text/javascript">
<!--
document.write('<a href="javascript:popupWindow(\'http://www.chanelkings.com/index.php?main_page=popup_image&pID=75\')">
<img src="images/Chanel Handbags Newest/36076-aqua-blue-gold-1.JPG" alt="Chanel Bags Newest Aqua Blue Gold 36070" title=" Chanel Bags Newest Aqua Blue Gold 36070 " width="250" height="167" />
我要的是 src里的内容 可以试试这个正则:<div id="productMainImage" class="centeredContent back">[\s\S]*?<img src="(?<content>[\s\S]*?)"由于你没有提供网站地址,所以不能用火车头测试,不清楚能否匹配,不过我在php里测试是可以获得匹配的
一直不会用火车头里的正则,看了些资料,也大概知道了火车头正则的设置,(?<content>[\s\S]*?)是捕获,只有一个捕获,并且命名了捕获的键名content,用来识别,其他的和正则一样
php的正则匹配代码
<?php
$str='<div id="productMainImage" class="centeredContent back"><script language="javascript" type="text/javascript">
<!--
document.write(\'<a href="javascript:popupWindow(\'http://www.chanelkings.com/index.php?main_page=popup_image&pID=75\')">
<img src="images/Chanel Handbags Newest/36076-aqua-blue-gold-1.JPG" alt="Chanel Bags Newest Aqua Blue Gold 36070" title=" Chanel Bags Newest Aqua Blue Gold 36070 " width="250" height="167" />
</a>';//目标字符串
$exp='/<div id="productMainImage" class="centeredContent back">[\s\S]*?<img src="(?<content>[\s\S]*?)"/i';//正则表达式
preg_match_all($exp,$str,$arr);//匹配全部满住条件的
//print_r($arr);
if(!empty($arr['content'])){//存在匹配
echo '匹配存在:<br>';
print_r($arr['content']);
}
else echo '没有匹配,检查正则<br>';//不存在匹配
?>
谢谢2楼 万分感谢
经2楼这么一指点
终于领悟到了 火车头 正则的用法了
页:
[1]