preg_match_all

zhanghaoranjn 2010-07-27 09:52:04
我用preg_match_all来截取字符串
$ziliao="<a href=mulu_222780.html>体尊</a><td class=xt>";
preg_match_all('/<a href=([^>])*>/',$value,$Books);

按照文档上的结果

$Books[0][0]=<a href=mulu_222780.html>;

$Books[1][0]=mulu_222780.html;


但是我现在的得到的结果 $Books[1][0]=1;
哪怕$Books[1]的长度为5、6、7。。。。。。。都是同样的结果

各位帮忙看看
...全文
34 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
*?+是修饰符 表示取的个数 你要写进()里去 因为你匹配的是()里的除了'>'以外的任意字符 是这个意思吧?
那就要'/<a href=([^>]*)>/i' 你的是在外面 那么你匹配的就是>以外的任意字符 当然是1了 字符串有几个非'>'字符 你这么就匹配出几个1
回复
amani11 2010-07-27
因为匹配的是()里的内容

而里面只是一个判断([^>]) ,非>,结果是真,赋值给了,匹配数组$Books[1]的元素

我前面贴的,是能返回你要的结果的。
回复
CunningBoy 2010-07-27
<?php
$ziliao="<a href=mulu_222780.html>体尊</a><td class=xt>";
preg_match_all('/<a href=([^>]*)>/',$ziliao,$Books); //这样,括号要把*包进去才行
print_r($Books);
?>
回复
zhanghaoranjn 2010-07-27
Array
(
[0] => Array
(
[0] => <a href=mulu_121830.html>仙锻</a><td class=xt>
[1] => <a href=mulu_163417.html>异世邪君</a><td class=xt>
[2] => <a href=mulu_104622.html>九界独尊</a><td class=xt>
[3] => <a href=mulu_105716.html>星际游轮</a><td class=xt>
[4] => <a href=mulu_88105.html>鸿钧之师</a><td class=xt>
[5] => <a href=mulu_75923.html>长生界</a><td class=xt>
[6] => <a href=mulu_163952.html>魔法世界之机械召唤</a><td class=xt>
[7] => <a href=mulu_180834.html>英雄无敌之超级英雄</a><td class=xt>
[8] => <a href=mulu_179867.html>回到大明当才子</a><td class=xt>
)

[1] => Array
(
[0] => l
[1] => l
[2] => l
[3] => l
[4] => l
[5] => l
[6] => l
[7] => l
[8] => l
)

)


这是我得出来的结果
不知道是哪里错误了
回复
zhanghaoranjn 2010-07-27
[Quote=引用 2 楼 amani11 的回复:]
PHP code

$ziliao="<a href=mulu_222780.html>体尊</a><td class=xt>";
preg_match_all('/<a href=(.*?[^\>])>/',$ziliao,$Books);

print_r($Books);
/****是你想要的么?
Array
(
[0] => Array
(
……
[/Quote]

我这结果出来是


Array
(
[0] => Array
(
[0] => <a href=mulu_222780.html>
)

[1] => Array
(
[0] => 1
)

)
回复
zhanghaoranjn 2010-07-27
[Quote=引用 1 楼 cunningboy 的回复:]
$value是什么值?

应该是:

PHP code
$ziliao="<a href=mulu_222780.html>体尊</a><td class=xt>";
preg_match_all('/<a href=([^>])*>/',$ziliao,$Books); // 是对$ziliao匹配,不是$value
print_r($Books);
[/Quote]

那个是我写错了
但是结果出来不对啊
回复
amani11 2010-07-27

$ziliao="<a href=mulu_222780.html>体尊</a><td class=xt>";
preg_match_all('/<a href=(.*?[^\>])>/',$ziliao,$Books);

print_r($Books);
/****是你想要的么?
Array
(
[0] => Array
(
[0] => <a href=mulu_222780.html>
)

[1] => Array
(
[0] => mulu_222780.html
)

)
***/
回复
CunningBoy 2010-07-27
$value是什么值?

应该是:
$ziliao="<a href=mulu_222780.html>体尊</a><td class=xt>";
preg_match_all('/<a href=([^>])*>/',$ziliao,$Books); // 是对$ziliao匹配,不是$value
print_r($Books);
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告