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 正则表达式。 展开
<span class="STYLE1">XXXX</span>
<LI><LABEL>注册日期
第二种情况:<LI><LABEL>用户组:</LABEL> XXXX
<LI><LABEL>注册日期
HTML代码中筛选出XXXX,如题现在有几种情况。XXXX可能是纯中文,也有可能是英文+数字。另外XXXX颜色不一样。所以就会有上面这两种情况,另外第一种颜色不固定。有办法筛选出来吗?对了,忘了说了 是php 正则表达式。 展开
展开全部
如果只是提取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";
/\[\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也就不确定了。有什么好办法没?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我只给你提供表达式吧
/(style1"|/label)>([^\n<]+)</ig
取第二个括号内的值就是你要的值了
/(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]); //这个就是结果的数组
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询