关于POSIX排序元素的PHP警告

关于POSIX排序元素的PHP警告,php,regex,apache,preg-replace,Php,Regex,Apache,Preg Replace,下面有一条PHP警告消息 警告:preg_replace()[function.preg replace]:编译失败: 中偏移量71处不支持POSIX排序元素 **/第244行的bbcode.php 下面是bbcode.php的第244行 $config['text'] = preg_replace('#(^|[ \t\r\n"“\'])(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,

下面有一条PHP警告消息

警告:preg_replace()[function.preg replace]:编译失败: 中偏移量71处不支持POSIX排序元素 **/第244行的bbcode.php

下面是bbcode.php的第244行

$config['text'] = preg_replace('#(^|[ \t\r\n"“\'])(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))#ui', '$1[url]$2[/url]', $config['text']);
(c)i)b(a-z[a-z[a-z[[a-z[[a-z[2、4)2、4)5)b(a-z[[[w-[[w-[[[[w-[[[[[[[w-”””:::::::::[[政府::[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[C]]]]]]]a-z]]]a-z][[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[w-[w-[s()]+|(\([^\s()]+\)*\)[^\s`!()\[\]{};:\”,«»“')))\ui',“$1[url]$2[/url],$config['text']); 有什么建议可以避免这个警告吗? (不在服务器配置中编辑任何内容)

我用 PHP版本5.2.17和Apache 2.0


非常感谢Advanced。

显然,假设您是指以下序列:

[.]|[a-z0-9.\-]+[.]

…作为排序元素(),因为
[.
]
的原因。尝试使用
\.
来转义点,而不是
[.]

的可能副本。请首先确保您没有在这里重新设计轮子:您真的想维护这个怪物正则表达式吗?