Home > Backend Development > PHP Tutorial > 帮忙写个正则表达式

帮忙写个正则表达式

WBOY
Release: 2016-06-23 14:15:20
Original
861 people have browsed it

		<dd class="clear">		   												<a  target="_blank" title="爱丽丝cos" href="/cp/sK7A9su_Y29z.html">爱丽丝cos</a>									<a  target="_blank" title="爱丽丝连衣裙" href="/cp/sK7A9su_wazSwsi5.html">爱丽丝连衣裙</a>									<a  target="_blank" title="爱丽丝梦游仙境" href="/cp/sK7A9su_w87Tzs_JvrM.html">爱丽丝梦游仙境</a>									<a  target="_blank" title="爱丽丝疯狂回归" href="/cp/sK7A9su_t-i_8bvYuek.html">爱丽丝疯狂回归</a>									<a  target="_blank" title="爱丽丝花盆" href="/cp/sK7A9su_u6jF6A.html">爱丽丝花盆</a>									<a  target="_blank" title="爱丽丝手办" href="/cp/sK7A9su_ytaw7A.html">爱丽丝手办</a>									<a  target="_blank" title="alice" href="/cp/YWxpY2U.html">alice</a>									<a  target="_blank" title="女仆" href="/cp/xa7GzQ.html">女仆</a>									<a  target="_blank" title="爱丽丝学园" href="/cp/sK7A9su_0afUsA.html">爱丽丝学园</a>									<a  target="_blank" title="爱丽丝菲尔" href="/cp/sK7A9su_t8a2-w.html">爱丽丝菲尔</a>									<a  target="_blank" title="爱丽丝手包" href="/cp/sK7A9su_ytaw_A.html">爱丽丝手包</a>									<a  target="_blank" title="爱丽丝复古" href="/cp/sK7A9su_uLS5xQ.html">爱丽丝复古</a>								</dd>
Copy after login

我现在要取这个页面的
之间这段内容里的title的值和href的值,因为这个页面其他地方也有这种格式,所以现在直接用
$contents_key = '~<a  target="_blank" title="(.*?)" href="(.*?)">~';preg_match_all($contents_key,$html,$contentskey);
Copy after login
这样会把dd标签外的相同格式的也包含进来,问下这个正则应该怎么写?


回复讨论(解决方案)

分两步就是了,先把dd标签内的内容匹配出来,再应用你的正则。

先把

之间的抓去出来 然后再去解析里面的title和链接

分两步就是了,先把dd标签内的内容匹配出来,再应用你的正则。
但是现在直接抓取dd标签也是抓取不到的

这dd标签中间有很多空格,我用(.*?)匹配不到。

你最终想要的结果是什么?

你最终想要的结果是什么?
我就想要title=“这里是我要的” href=“这里也是我想要的”,而且最好是一个正则,感觉两个正则要匹配两次,效率是不是有点太低了?

$s=<<<divagfdafg<dd class="clear">                                                   <a  target="_blank" title="爱丽丝cos" href="/cp/sK7A9su_Y29z.html">爱丽丝cos</a>                            <a  target="_blank" title="爱丽丝连衣裙" href="/cp/sK7A9su_wazSwsi5.html">爱丽丝连衣裙</a>                            <a  target="_blank" title="爱丽丝梦游仙境" href="/cp/sK7A9su_w87Tzs_JvrM.html">爱丽丝梦游仙境</a>                            <a  target="_blank" title="爱丽丝疯狂回归" href="/cp/sK7A9su_t-i_8bvYuek.html">爱丽丝疯狂回归</a>                            <a  target="_blank" title="爱丽丝花盆" href="/cp/sK7A9su_u6jF6A.html">爱丽丝花盆</a>                            <a  target="_blank" title="爱丽丝手办" href="/cp/sK7A9su_ytaw7A.html">爱丽丝手办</a>                            <a  target="_blank" title="alice" href="/cp/YWxpY2U.html">alice</a>                            <a  target="_blank" title="女仆" href="/cp/xa7GzQ.html">女仆</a>                            <a  target="_blank" title="爱丽丝学园" href="/cp/sK7A9su_0afUsA.html">爱丽丝学园</a>                            <a  target="_blank" title="爱丽丝菲尔" href="/cp/sK7A9su_t8a2-w.html">爱丽丝菲尔</a>                            <a  target="_blank" title="爱丽丝手包" href="/cp/sK7A9su_ytaw_A.html">爱丽丝手包</a>                            <a  target="_blank" title="爱丽丝复古" href="/cp/sK7A9su_uLS5xQ.html">爱丽丝复古</a>                        </dd>dafdsaf						div;preg_match('/<dd class="clear">(.+?)<\/dd>/s',$s,$m);					echo $m[1];
Copy after login


爱丽丝cos
爱丽丝连衣裙
爱丽丝梦游仙境
爱丽丝疯狂回归
爱丽丝花盆
爱丽丝手办
alice
女仆
爱丽丝学园
爱丽丝菲尔
爱丽丝手包
爱丽丝复古

试试用这个匹配dd的内容

$pattern = '/<dd class="clear">.*<\/dd>/is'
Copy after login

修饰符i:不分大小写
修饰符s:模式里的一个"点"将匹配所有字符,包括换行.没有他,换行将被排除在外.这个修饰符等同于Perl里面的/s修饰符

$contents_key = '~<dd class="clear">([\s\S]*?)</dd>~';
Copy after login

我自己想了个,这个搞定。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template