在php中检测大括号中的空格

时间:2014-03-05 14:52:05

标签: php regex

我必须从使用{和}的旧系统转换令牌,因为这些是非常糟糕的令牌,我想使用不同的东西(我想使用类似:| token |)

所有令牌都是这样的:

  • TOKEN1
  • TOKEN_1
  • 1TOKEN

我有一些内部有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
                )

        )

我是否还需要做另一个循环来弄清楚哪一个我必须忽略?还是有一个神奇的正则表达式可以修复它?

1 个答案:

答案 0 :(得分:2)

试试这个:

$p = '/{([^}{ :]*)}/';

它只匹配没有其他花括号,空格或:的花括号。