php正则 筛选XXXX

第一种情况:<LI><LABEL>用户组:</LABEL><spanclass="STYLE1">XXXX</span><LI><LABEL>注册日期第二种情况:<LI>... 第一种情况:<LI><LABEL>用户组:</LABEL>
<span class="STYLE1">XXXX</span>
<LI><LABEL>注册日期
第二种情况:<LI><LABEL>用户组:</LABEL> XXXX
<LI><LABEL>注册日期
HTML代码中筛选出XXXX,如题现在有几种情况。XXXX可能是纯中文,也有可能是英文+数字。另外XXXX颜色不一样。所以就会有上面这两种情况,另外第一种颜色不固定。有办法筛选出来吗?对了,忘了说了 是php 正则表达式。
展开
 我来答
aaronCA
2013-03-07 · TA获得超过152个赞
知道小有建树答主
回答量:293
采纳率:0%
帮助的人:95.3万
展开全部
如果只是提取href试试看这么写(简单的):
/\[\s*<a\s*href=\"?((?:[^\"]+|\\")+)\"?/
如果想转化成/list/12-1.html类型
/\[\s*<a\s+href=\"?[^\?\"]*\?(?:a=|c=(\d+)|l=(\d+)|p=(\d+)|&)+\"?\s*>/
$match = array();
$num = preg_match_all($pattern,$html,$match,PREG_SET_ORDER);
$match[0-N]是N个获取的匹配结果数组,其中$match[$i]中第一个是匹配的原文本,$match[$i][1-3]分别是c=? l=? p=?
if(count($match[$i])==4){
$url="/list/"$match[$i][1]."-".$match[$i][3]."html";
}
//如果不需要l=[number]就把l=(\d+)变为l=\d+不匹配即可,相应的上面是$url="/list/"$match[$i][1]."-".$match[$i][2]."html";
追问
其实是这样的 我已经模拟登陆discuz论坛了。我就是现在控制面板里面筛选出 用户等级信息。因为不同级别等级信息颜色不一样。所以html里面等级信息样式在变。html也就不确定了。有什么好办法没?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_____God_____
2013-03-07 · TA获得超过1763个赞
知道小有建树答主
回答量:599
采纳率:0%
帮助的人:396万
展开全部
我只给你提供表达式吧
/(style1"|/label)>([^\n<]+)</ig

取第二个括号内的值就是你要的值了
追问
我现在是这样。但是不完美。你说的怎么修改。可以帮我修改好发给我吗?我菜鸟。
preg_match('#LEVEL(.*)\#',$contents,$level);

'#LEVEL(.*)\#'这部分应该修改成什么呢?
追答
你的这个正则肯定不行的.我改个好的然后给你吧,
哦了,吃饭来的,有点迟不过搞出来了

$subject = '用户组:
XXXX
注册日期用户组: XXXX
注册日期';
$pattern = '/(style1"|\/label)>([^<]+)</i';
preg_match_all($pattern, $subject, $matches);
print_r($matches[2]); //这个就是结果的数组
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式