当前位置:Gxlcms > PHP教程 > 帮忙写个正则表达式

帮忙写个正则表达式

时间:2021-07-01 10:21:17 帮助过:2人阅读

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

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


回复讨论(解决方案)

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

先把

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

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

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

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

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

$s=<<                                                   爱丽丝cos                            爱丽丝连衣裙                            爱丽丝梦游仙境                            爱丽丝疯狂回归                            爱丽丝花盆                            爱丽丝手办                            alice                            女仆                            爱丽丝学园                            爱丽丝菲尔                            爱丽丝手包                            爱丽丝复古                        dafdsaf						div;preg_match('/
(.+?)<\/dd>/s',$s,$m); echo $m[1];


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

试试用这个匹配dd的内容

$pattern = '/
.*<\/dd>/is'

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

$contents_key = '~
([\s\S]*?)
~';

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

人气教程排行