请教大家一个正则表达式的问题。。。。。
有一个字符串:[ti:霜华浓][ar:小曲儿][al:][by:文超]
我现在想要分别匹配出:[ti:霜华浓]、[ar:小曲儿]、[al:]、by:文超]
我写的代码如下:
PHP code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
$pattern = '/[ti:.*].*?]/is';
preg_match_all($pattern, $str, $match);
echo '<pre class="brush:php;toolbar:false">';
var_dump($match);
echo '
';
打印的结果是:
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)]"
}
我哪写错了吗?
正确的应该怎么写呢?
谢谢!
}
------解决方案--------------------
这个意思?
PHP code
$s = '[ti:霜华浓][ar:小曲儿][al:][by:文超]';
preg_match_all('/\[[^]]+\]/', $s, $r);
print_r($r[0]); <div class="clear">
</div>
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn