日期:2014-05-17  浏览次数:20467 次

php用正则表达式截取字符【求助】
哪位高手帮忙看看:我想从下面的代码中提取
{dede:field name='keywords'}{/dede:field}
{dede:field name='description'}{/dede:field}
{dede:field name='title'}http://down.sucai.com/fonts/soft/071130/1_071204075903.rar{/dede:field}
{dede:field name='writer'}{/dede:field}
{dede:field name='source'}{/dede:field}
{dede:field name='body'}{/dede:field}
{dede:field name='pubdate'}{/dede:field}
{dede:field name='litpic'}/uploads/allimg/c100112/12632b9420Z-412413.jpg{/dede:field}
这个
http://down.sucai.com/fonts/soft/071130/1_071204075903.rar

/uploads/allimg/c100112/12632b9420Z-412413.jpg
正则应该怎么来写呢

------解决方案--------------------
PHP code
 
$str = < < <EOF
{dede:field name='keywords'}{/dede:field}
{dede:field name='description'}{/dede:field}
{dede:field name='title'}http://down.sucai.com/fonts/soft/071130/1_071204075903.rar{/dede:field}
{dede:field name='writer'}{/dede:field}
{dede:field name='source'}{/dede:field}
{dede:field name='body'}{/dede:field}
{dede:field name='pubdate'}{/dede:field}
{dede:field name='litpic'}/uploads/allimg/c100112/12632b9420Z-412413.jpg{/dede:field}
EOF;

preg_match_all("#name='(title|litpic)'\}(.*)\{#U",$str,$matches);

print_r($matches);

------解决方案--------------------
$s = <<< HTML
{dede:field name='keywords'}{/dede:field} 
{dede:field name='description'}{/dede:field} 
{dede:field name='title'}http://down.sucai.com/fonts/soft/071130/1_071204075903.rar{/dede:field} 
{dede:field name='writer'}{/dede:field} 
{dede:field name='source'}{/dede:field} 
{dede:field name='body'}{/dede:field} 
{dede:field name='pubdate'}{/dede:field} 
{dede:field name='litpic'}/uploads/allimg/c100112/12632b9420Z-412413.jpg{/dede:field} 
HTML;

$p = '#}(.+){#';

preg_match_all($p, $s, $r);
print_r($r[1]);


Array
(
[0] => http://down.sucai.com/fonts/soft/071130/1_071204075903.rar
[1] => /uploads/allimg/c100112/12632b9420Z-412413.jpg
)