我想匹配并从{{variable:int}}
Curretly我有:preg_replace('!\{\{(\S+)\}\}!', "$1", $string)
只做了一半的工作,我仍然要分开:
。
谢谢!
答案 0 :(得分:2)
您需要non-greedy匹配(.*?
):preg_replace('!\{\{(.*?):(\d)\}\}!')
答案 1 :(得分:1)
使用
{{([a-zA-Z]+):(\d+)}}
$ 1将包含捕获的变量,$ 2将包含捕获的整数
<强>解释强>
{{([a-zA-Z])+:(\d+)}}
[a-zA-Z] +表示至少还有一个字母(小字或大写字母)
然后是“:”
然后是至少一个或多个数字(0-9)
答案 2 :(得分:1)
如果你想提取名字/值,我想你想使用preg_match。
preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);
$varname = $matches[1];
$val = $matches[2];