使用PHP将带占位符的字符串解析为数组

时间:2010-12-16 09:29:53

标签: php wildcard string-parsing

我有一个类似

的字符串
$input = '%name (%postcode) <%email>';

如何使用方案%NAME检测占位符,以便获得数组

$wildcards = array('name', 'postcode', 'email');

到底?

它应该识别任何字符串中的通配符方案之后的任何通配符。所以函数也应该转换

'%address (%name)'

array('address', 'name')

通配符方案不是固定的,因此如果您有更好的解决方案,可以更改它们。我摆弄了sscanf(),但由于输入字符串的格式各不相同,我需要更灵活的东西,它不符合我的需要。

1 个答案:

答案 0 :(得分:3)

这将完成这项工作:

$input = '%name (%postcode) <%email>';
preg_match_all('/%(\w+)/', $input, $m);
$wildcards = $m[1];
print_r($wildcards);

Outut:

Array
(
    [0] => name
    [1] => postcode
    [2] => email
)