一個Regex的有關問題。

來源:互聯網
上載者:User
請教大家一個Regex的問題。。。。。
有一個字串:[ti:霜華濃][ar:小曲兒][al:][by:文超]
我現在想要分別匹配出:[ti:霜華濃]、[ar:小曲兒]、[al:]、by:文超]

我寫的代碼如下:
PHP code
$pattern = '/[ti:.*].*?]/is';preg_match_all($pattern, $str, $match);    echo '
';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]);
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.