zyfpb
注册会员

初级会员
UID 64970
精华
0
积分 141
帖子 101
金钱 141 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2005-6-24
状态 离线
|
[推荐阅读] 发现一张图
知道是什么问题了。
我从deerchao的博客获得了答案
请看:
对这个例程,我总是理解不透
为什么$tags[2]返回的是 in it
而不是 a 或者 of
你能详细地帮我理解
ereg("^([^<]*)(<[^>]+>[^<]*)*$", $str, $tags)
这个正则吗?
#199楼 [楼主] 2008-03-10 21:43 deerchao
@记事本
原教程中没有提到这一点.
当分组的后面加上了限定符(量词)之后,此分组会用来多次进行匹配,但是其捕获的值是最后一次匹配到的子字符串.
在.Net的正则表达式库里,还有个比Group更小的捕获单位:Capture. 每个Capture代表Group的一次匹配的结果.在这个例子里,Group[2]里包含了三个Capture,分别对应着"<has> a", "<couple> of" 和 "<tags> in it".
在PHP里我就不清楚有没有对应的东西,以及如果有的话,会叫什么了..
#200楼 2008-03-10 22:36 记事本
啊,谢谢你,你的解释是完全正确的。
“当分组的后面加上了限定符(量词)之后,此分组会用来多次进行匹配,但是其捕获的值是最后一次匹配到的子字符串. ”
你的这句话让我想起了查看网页源文件,果然
$tags[2]返回的是 <tags>in it
只是输出为html页的时候没有显示 <tags> 而已。
详情请看这里:
http://www.cnblogs.com/deerchao/ ... zhongjiaocheng.html
|
|