帮忙解释一下这个正则表达式

nocturne1210 2009-08-07 11:40:38
我要取出下面这个字符串的file,name1,代码如下:

$line="<a href='index.php'>file</a><a href='javascript:(省略)'>name1</a>";

$data=preg_split("/<a href='(.+)'>/",$line);

echo "length=".count($data)."<br>";
foreach($data as $value)
echo "value=<xmp>$value</xmp>";

运行的结果:
length=2
value=

value=

name1</a>

结果到是我要的,但是关于正则表达式里的(.+)我不太理解阿,“.”是除换行符外所有的字符,“+”是一次以上,如果我只用“.”,也就是没有+,那就是整个字符串,如果是(.+?),那结果就是
length=3
value=

value=

file</a>

value=

name1</a>

不懂啊,为什么会是这样的结果,为什么有空的value?

新手一个,鞠躬,谢谢
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxllyf 2009-08-07
  • 打赏
  • 举报
回复
才给5分……
zhongqixing1104 2009-08-07
  • 打赏
  • 举报
回复
.是指一个字符!!1
blueforyou 2009-08-07
  • 打赏
  • 举报
回复
.匹配任意单个字符,+代表1个或多个=>
.+即是匹配1个或多个任意字符
nocturne1210 2009-08-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wxllyf 的回复:]
才给5分……
[/Quote]
新手一个,分少,问题多,见笑了。
nocturne1210 2009-08-07
  • 打赏
  • 举报
回复
/ <a href='(.+)'>/ 为什么不能把file、name1这两个值都取出来啊?file那个值前面不也是符合的吗?
(.+?)怎么就可以把所有的值都取出来呢?

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧