首页 文章

preg_replace有什么问题?

提问于
浏览
1

我试图解决一个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

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

  • 1

    \C 与以下内容相同:

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

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

相关问题