有一个字符串:[ti:霜华浓][ar:小曲儿][al:][by:文超]
我现在想要分别匹配出:[ti:霜华浓]、[ar:小曲儿]、[al:]、by:文超]我写的代码如下:$pattern = '/[ti:.*].*?]/is';
preg_match_all($pattern, $str, $match);
echo '<pre>';
var_dump($match);
echo '</pre>';
打印的结果是:
array(1) {
[0]=>
array(5) {
[0]=>
string(10) "ti:霜华浓]"
[1]=>
string(8) ":小曲儿]"
[2]=>
string(2) ":]"
[3]=>
string(6) ":文超]"
[4]=>
string(14) "t_time:(3:47)]"
}
}
然后我将正则改成:$pattern = '/\[ti:.*].*?]/is';
匹配出来的结果是:
array(1) {
[0]=>
array(1) {
[0]=>
string(51) "[ti:霜华浓][ar:小曲儿][al:][by:文超][t_time:(3:47)]"
}我哪写错了吗?
正确的应该怎么写呢?谢谢!
}
我现在想要分别匹配出:[ti:霜华浓]、[ar:小曲儿]、[al:]、by:文超]我写的代码如下:$pattern = '/[ti:.*].*?]/is';
preg_match_all($pattern, $str, $match);
echo '<pre>';
var_dump($match);
echo '</pre>';
打印的结果是:
array(1) {
[0]=>
array(5) {
[0]=>
string(10) "ti:霜华浓]"
[1]=>
string(8) ":小曲儿]"
[2]=>
string(2) ":]"
[3]=>
string(6) ":文超]"
[4]=>
string(14) "t_time:(3:47)]"
}
}
然后我将正则改成:$pattern = '/\[ti:.*].*?]/is';
匹配出来的结果是:
array(1) {
[0]=>
array(1) {
[0]=>
string(51) "[ti:霜华浓][ar:小曲儿][al:][by:文超][t_time:(3:47)]"
}我哪写错了吗?
正确的应该怎么写呢?谢谢!
}
$s = '[ti:霜华浓][ar:小曲儿][al:][by:文超]';
preg_match_all('/\[[^]]+\]/', $s, $r);
print_r($r[0]);Array
(
[0] => [ti:霜华浓]
[1] => [ar:小曲儿]
[2] => [al:]
[3] => [by:文超]
)
$str = '[ti:霜华浓][ar:小曲儿][al:][by:文超]';
$pattern = '/\[(.*):(.*)\]/Uis';
preg_match_all($pattern, $str, $match);
foreach($match[1] as $k=>$v) {
echo $v . ':' . $match[2][$k] . '<br/>';
}
/**
输出结果:
ti:霜华浓
ar:小曲儿
al:
by:文超
*/
[User:root Time:14:37:36 Path:/home/liangdong/php]$ php preg.php
Array
(
[0] => Array
(
[0] => [ti:霜华浓]
[1] => [ar:小曲儿]
[2] => [al:]
[3] => [by:文超]
))
[User:root Time:14:37:38 Path:/home/liangdong/php]$ cat preg.php
<?php
$str = <<<EOF
[ti:霜华浓][ar:小曲儿][al:][by:文超]
EOF;
preg_match_all('/\[.*\]/U', $str, $matches);
print_r($matches);
?>