我有一个类似
的字符串$input = '%name (%postcode) <%email>';
如何使用方案%NAME
检测占位符,以便获得数组
$wildcards = array('name', 'postcode', 'email');
到底?
它应该识别任何字符串中的通配符方案之后的任何通配符。所以函数也应该转换
'%address (%name)'
到
array('address', 'name')
通配符方案不是固定的,因此如果您有更好的解决方案,可以更改它们。我摆弄了sscanf()
,但由于输入字符串的格式各不相同,我需要更灵活的东西,它不符合我的需要。
答案 0 :(得分:3)
这将完成这项工作:
$input = '%name (%postcode) <%email>';
preg_match_all('/%(\w+)/', $input, $m);
$wildcards = $m[1];
print_r($wildcards);
Array
(
[0] => name
[1] => postcode
[2] => email
)