-1

可能重复:
将 ereg 表达式转换为 preg

我已经尝试了很多不同的方法,甚至从 addedbytes.com 下载了正则表达式参考表,但我只是不知道如何将这个 eregi_replace() 语句移动到 preg_replace() 语句中。

我已阅读并理解 preg_replace() 的分隔符要求,但我认为问题在于修饰符。我如何知道该功能使用哪个修饰符?我尝试过\A、\b 和\e,但似乎都不起作用。我认为我缺少一些东西。

$bodytag = '%%BODY%%';
$header = eregi_replace($bodytag . '.*', '', $temp);
$footer = eregi_replace('.*' . $bodytag, '', $temp);

我尝试了以下方法:

$header = preg_replace('/%%BODY%%.*/i', '', $temp);
$footer = preg_replace('/.*%%BODY%%/i', '', $temp);

但这似乎不起作用。我错过了什么?

编辑

最近,我试过这个没有修复。

$bodytag = "%%BODY%%";
$header = preg_replace("/".$bodytag."(.*)/i", '', $temp);
$footer = preg_replace("/(.*)".$bodytag."/i", '', $temp);
4

2 回答 2

1

解决了:

原来这是解决方案:

$header = preg_replace("/".$bodytag."(.*)/is", '', $temp);
$footer = preg_replace("/(.*)".$bodytag."/is", '', $temp);

从另一个网站的论坛获得帮助和答案。我错过了“s”修饰符,我也不知道修饰符可以堆叠。

于 2011-07-25T18:54:08.640 回答
0

$header = preg_replace('/BODY(.*)/i', '', $temp); $footer = preg_replace('/(.*)BODY/i', '', $temp);

于 2011-07-14T22:36:06.820 回答