preg_match与排除

时间:2011-12-01 19:29:11

标签: php regex preg-match

我遇到了以下问题。

我需要先清理HTML,然后再将其呈现给浏览器。

目前的正则表达式匹配像“{varname}”这样的问题到目前为止没有问题,但是我需要排除脚本标记中的匹配。

* 示例有点不清楚,所以更新* 例如:

<html>
<head></head>
<body>
this is an example `{var}` variable, <- this should be matched/removed
    <script>
    // don't match below arguments in other words don't let regex remove them/match them
    myMethod("{param1:'foo', param2:'bar'}");
    </script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

使其具体并且只匹配字母数字字符:

preg_replace("~\{(\w+)}~i", "", $sContent); 

将避免{x: 'y'}示例问题。


要使用preg排除文档部分,请使用preg_replace_callback;列出不需要的(<script>.+?</script>)|...作为第一个替代,然后在回调中列出switch-handle。