关于正则表达式,一次匹配的问题

关于正则表达式,一次匹配的问题

先看看这个程序和演示结果:
1.

$content='gddfgdgd<title>新浪首页</title>dff';
$tit=preg_match('/<title>(.*)<\/title>/',$content,$x);
//$dd=explode('<>',$str);
print_r ($x);

输出:
Array
(
    [0] => <title>新浪首页</title>
    [1] => 新浪首页
)
========================================
2.

$content='gdd<>fgdgd<title>新浪首页</title>dfg<title>网易首页</title>df';
$tit=preg_match('/<title>(.*)<\/title>/',$content,$x);
print_r ($x);

输出:
Array
(
    [0] => <title>新浪首页</title>dfg<title>网易首页</title>
    [1] => 新浪首页</title>dfg<title>网易首页)  

本来是想用来取得一个网页的标题,只取得第一个匹配就行了,多了太耗资源
但是这个就出现了上面的结果,不能一次匹配
各位高手看看要怎么做,我一个php新手,学习ing,谢谢

非贪婪模式

[复制到剪切板]
CODE:
<?php
$content
='gdd<>fgdgd<title>新浪首页</title>dfg<title>网易首页</title>df';
preg_match('/<title>(.*?)<\/title>/i',$content,$x);
print_r ($x);

preg_match('/<title>(.*)<\/title>/iU',$content,$y);
print_r ($y);
?> ;


毕业了。。。

谢谢,可是我还是不太明白,原理
?在里边是什么用途

没有 ? 是贪婪模式。贪婪模式会一直匹配到最后。
有 ? 或者修饰符 U 则是非贪婪模式。非贪婪模式则匹配头一个
毕业了。。。



[复制到剪切板]
CODE:
$body 'skljdf<title>ksljdf</title>kjdfl';
eregi("<title>(.*)</title>",$body,$title);
$title=substr($title[0],7,-8); ;