正则表达式在'RegExr'中工作但不在preg_replace中工作?

时间:2012-03-03 18:02:13

标签: php regex

我是正则表达式的新手,我使用RegExr检查了以下模式,但是在使用preg_replace的PHP中失败了。

我尝试添加一个额外的反斜杠以逃避第一个\而没有运气。

非常感谢任何帮助我指明正确方向的帮助。

示例:

   $output = preg_replace("\[if](.*)[/if/]*", ' ', $output);

我也试过添加斜杠:

    $output = preg_replace("/\[if](.*)[/if/]*/", ' ', $output);

我想要修改的字符串是:

[if] <p>A statement goes here</p> [/if]

1 个答案:

答案 0 :(得分:3)

  1. 如果您希望它代表文字
  2. ,请退出所有[]
  3. 需要分隔符。
  4. 如果模式中出现分隔符,则必须设置,或选择其他分隔符(由于/,我选择了%)。
  5. 结尾]*,0次或更多次] ....你确定吗?
  6. 我怀疑使用不合格(.*?)的可能性更大,但我会把它留给你。
  7. 给出:

    "%\[if\](.*)\[/if\]%"