我想用正则表达式匹配html的标签内的用的正则表达式是#(.*)#因为匹配的原文其实就是一个有规律的表格我想要将匹配出来的多个结果分别存入数据库中但是返回的二维数组我不明白我的理解是第一维的结果是正常匹配出来的结果然后第二维是在一维的结果内再进行匹配吗但是实际出来第一维数组和第二维数组是一样的呀我找到一个preg_match参数参数说明:参数说明pattern正则表达式subject需要匹配检索的对象matches可选,存储匹配结果的数组,$matches[0]将包含与整个模式匹配的文本,$matches[1]将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推(o.o类推你妹呀看不懂呀初学者让大家)代码如下//用正则表达式匹配TR标签第二个TR标签为第一大节课对该段标签再去匹配td标签结果有7个依次为星期一到星期天第一节课的内容$test="星期一 星期二 星期三 星期四 星期五 星期六 星期日 第一大节 11 12 13 14 15 16 17 第二大节 21; 22 形势与政策(6)
第10周
吕志和礼堂 白文杰24 25 26 27 第三大节 英语 数学 第四大节 音乐 晚 上 ";functiontrimall($str)//删除全部空格{$qian=array(""," ","\t","\n","\r");$hou=array("","","","","");returnstr_replace($qian,$hou,$str);}$test=trimall($test);$match="#(.*) #";preg_match_all($match,$test,$TR);print_r($TR);?>慕勒3428872浏览 725回答 22回答
萧十郎
请问你理解了这句话吗?$matches[1]将包含与第一个捕获的括号中的子模式所匹配的文本,括号指的是什么?理解之后,我在提醒下,你的$matches[0]肯定比$matches[1]要多TR这个标签吧?RISEBY
preg_match_all不是匹配一次就停止,而是匹配完得到所有的结果。所以$matches[0]就不是string而是arrayofstring。然后每个匹配得到的表达式都对应一个子串,所以[1]同理。随时随地看视频慕课网APP相关分类