我必须从使用{和}的旧系统转换令牌,因为这些是非常糟糕的令牌,我想使用不同的东西(我想使用类似:| token |)
所有令牌都是这样的:
我有一些内部有css和令牌的php页面,我不想替换css例如:
$html = '...
body { font-size: 12px; }
...
{TOKEN1}
...
{token2}
';
我希望能够仅更改令牌并保持css原样。
我有这个:
$p = '/{([^}]*)}/';
$t = preg_match_all($p, $html, $matches,PREG_OFFSET_CAPTURE);
但仍然没有删除CSS。我明白了:
Array
(
[0] => Array
(
[0] => Array
(
[0] => { font-size: 12px; }
[1] => 10
)
[1] => Array
(
[0] => {TOKEN1}
[1] => 35
)
[2] => Array
(
[0] => {token2}
[1] => 48
)
)
我是否还需要做另一个循环来弄清楚哪一个我必须忽略?还是有一个神奇的正则表达式可以修复它?
答案 0 :(得分:2)
试试这个:
$p = '/{([^}{ :]*)}/';
它只匹配没有其他花括号,空格或:的花括号。