我有一个字符串,其中包含{namespace:name}格式的变量我正在尝试创建一个正则表达式来查找字符串中的所有变量。到目前为止,我有以下内容,但它不起作用:
$str = " {user:fname} and the last name = {user:lname}";
var_dump(preg_match_all("/^\{(\w):(\w)\}/", $str, $matches));
var_dump($matches);
但它找不到任何标签。变量可以包含名称空间和名称的任何单词,但字母只能包含空格。任何帮助将不胜感激。
更新
我也尝试了以下操作,但未收到任何结果:"/\{(\w):(\w)\}/"
答案 0 :(得分:5)
从正则表达式中删除锚^
并允许长度超过一个字符的变量。
/^\{(\w):(\w)\}/
变为:
/\{(\w+):(\w+)\}/