我试图解决一个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 回答
我没有在转义序列列表中的任何地方看到
\C
. 不应该是(.*?)
而不是(\C*?)
?\C
与以下内容相同:尝试将其更改为此,因为并非所有口味都支持
\C