分隔符爆炸

时间:2014-10-16 12:45:16

标签: php arrays parsing explode

我有一个小问题。

现在我有一个看起来像这样的字符串:

:value1, GARBAGE :value2, :value3

另一个看起来像这样的字符串:

:value4 MAYBE GARBAGE :value5 GARBAGE :value6

如何在同一个函数中管理以':'开头的数组中的所有值?

喜欢:

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

...

2 个答案:

答案 0 :(得分:6)

你应该使用正则表达式。

这里有两个有用的例子:

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

或者

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

$input替换为您的字符串,格式正确的结果将显示在$matches[1]

答案 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>