欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

帮忙写个正则表达式

程序员文章站 2022-06-06 13:32:15
...
		
爱丽丝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('/
(.+?)/s',$s,$m); echo $m[1];

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

试试用这个匹配dd的内容

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

$contents_key = '~
([\s\S]*?)
~';
我自己想了个,这个搞定。