2010-03-02 53 views
1
<?PHP 
    $string = "[test]aaaaa[/[test][test]bbbb[/test][test]cccc[/test][test]ddd[/test]"; 
    echo $string . "<br>"; 
    preg_match("/\[test\].*?(\[\/test\])/i", $string, $m); 
    print_r($m); 
?> 

如何從capture [test]和[/ test]中獲得多個值爲aaaaa和bbbb的值?preg_match多重幫助?

+0

我想在字符串中的第一個標籤對搜索有一個錯字。 – 2010-03-02 03:54:08

回答

2
preg_match_all("/\[test\](.*?)\[\/test\]/i", $string, $array); 

$array[1]有你想要的。

1

非正則表達式的方式

$string = "[test]aaaaa[/test][test]bbbb[/test][test]cccc[/test][test]ddd[/test]"; 
$s = explode('[/test]',$string); 
foreach ($s as $v){ 
    if(strpos($v,"[test]")!==FALSE){ 
     $t=explode("[test]",$v); 
     print $t[1]."\n"; 
    } 
} 

輸出

$ php test.php 
aaaaa 
bbbb 
cccc 
ddd