2014-10-16 48 views
-3

我有一個小問題。按分隔符分解

現在我有一個字符串,它看起來像這樣:

:value1, GARBAGE :value2, :value3 

而且它看起來像另一個字符串:

:value4 MAYBE GARBAGE :value5 GARBAGE :value6 

如何管理,同樣的函數內把所有的以':'開頭的值:

贊:

Array 
(
    [0] => value1 
    [1] => value2 
    [2] => value3 
    [3] => value4 
) 

...

+1

http://php.net/manual/en/function.preg-match.php +簡單的正則表達式... – CBroe 2014-10-16 12:54:00

回答

6

您應該使用正則表達式。

這兩個例子的作品:

preg_match_all('/:([^ ,]+)/', $input, $matches); 

或者

preg_match_all('/:([a-zA-Z0-9]+)/', $input, $matches); 

替換$input與字符串,並以正確的形式,結果將在$matches[1]

0
<pre> 
<?php 
    $str = ':value1, GARBAGE :value2, :value3 :value4 MAYBE GARBAGE :value5 GARBAGE :value6'; 
    preg_match_all ('/\:([a-zA-Z0-9]+)[\w,]*/' , $str, $matches); 

    print_r($matches[1]); 
?> 
</pre>