繁体   English   中英

preg_replace问题

[英]preg_replace problem

我想匹配和提取变量: {{variable:int}}

  • 变量将是任何az
  • 是一个分隔符
  • int将是0-9的整数

Curretly我有: preg_replace('!\\{\\{(\\S+)\\}\\}!', "$1", $string)只做了一半的工作,我仍然需要拆分:

谢谢!

你需要一个非贪婪的匹配( .*? ): preg_replace('!\\{\\{(.*?):(\\d)\\}\\}!')

采用

{{([a-zA-Z]+):(\d+)}}

$ 1将包含捕获的变量,$ 2将包含捕获的整数

说明

{{([a-zA-Z])+:(\d+)}}

[a-zA-Z] +表示至少还有一个字母(小字或大写字母)
接着是“:”
然后是至少一个或多个数字(0-9)

如果你想提取名称/值,我想你想使用preg_match。

preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);  
$varname = $matches[1];  
$val = $matches[2];  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM