preg_replace有什么问题?

时间:2011-11-14 11:25:54

标签: php regex preg-replace

我正在尝试解决preg_replace的错误而没有成功,也许你可以帮助我。我有这句话:

$string = preg_replace("/\[_BEGIN_\](.*?)\[_END_\]/", '', $string);

它会删除所有[_BEGIN_][_END_]元标记之间的所有内容。例如适用于:

"The [_BEGIN_] quick brown [_END_]fox jumps over the lazy dog"

结果如下:

"The fox jumps over the lazy dog"

问题是它在我的开发机器(Ubuntu 9.10,PHP v5.2.10)中有效但在我的生产站点(Gentoo 1.6.14,PHP v5.2.5-pl1-gentoo)中它失败了(preg_replace返回相同的输入字符串)。

使用正则表达式有什么问题吗?我该如何解决这个问题?怎么调试呢?任何线索都将受到欢迎。感谢。

2 个答案:

答案 0 :(得分:1)

我没有在转义序列列表中的任何位置看到\C。不应该是(.*?)而不是(\C*?)吗?

答案 1 :(得分:0)

\C与:

相同
[^-._:A-Za-z0-9]

尝试将其更改为此,因为并非所有口味都支持\C