我有这个字符串:
{category:-}{product}-{rewrite:/}{/:controller}
我想查找来自{ to :
和: to }
的所有子字符串并将其删除,如下所示:
{category}{product}-{rewrite}{controller}
我的正则表达式是/:.*}/g
,但是它会先选择:
来持续}
,当我替换它时,请给它!:
{category}
答案 0 :(得分:0)
这是一个简单明了的方法:
$input = "{category:-}{product}-{rewrite:/}{/:controller}";
echo preg_replace("/:[^a-zA-Z0-9]*(?=\})|(?<=\{)[^a-zA-Z0-9]*:/", "", $input);
{category}{product}-{rewrite}{controller}
我使用的正则表达式模式的目标如下:
}
括号{
括号答案 1 :(得分:0)
以下代码可以帮助您:
$string = '{category:-}{product}-{rewrite:/}{/:controller}';
$string = preg_replace("/{([^{]:)*(\w*)(:[^}]*)*}/", '{$2}', $string);
echo $string;
如果您想尝试多种变体,请this guide。