Php 编译失败:偏移量4处的字符类中的范围无效

Php 编译失败:偏移量4处的字符类中的范围无效,php,codeigniter,preg-match,Php,Codeigniter,Preg Match,我使用CI_Minifier,在更新PHP后出现问题 现在,我在使用preg\u match功能时收到一个错误 如果(!preg_match(“/^[\w-:]+$/”,$tag)){#错误行 $node->\[HDOM\u INFO\u TEXT]=''){ $node->\[HDOM\u INFO\u TEXT]。='>'; } $this->link_节点($node,false); $this->char=(++$this->possize)?$this->doc[$this->pos]

我使用CI_Minifier,在更新PHP后出现问题

现在,我在使用
preg\u match
功能时收到一个错误

如果(!preg_match(“/^[\w-:]+$/”,$tag)){#错误行
$node->\[HDOM\u INFO\u TEXT]=''){
$node->\[HDOM\u INFO\u TEXT]。='>';
}
$this->link_节点($node,false);
$this->char=(++$this->possize)?$this->doc[$this->pos]:null;//下一步
返回true;
}
错误是:

编译失败:偏移量4处的字符类中的范围无效

退出连字符:

if (!preg_match("/^[\w\-:]+$/", $tag)) { 
或者把它放在字符类的开头:

if (!preg_match("/^[-\w:]+$/", $tag)) { 
或在最后:

if (!preg_match("/^[\w:-]+$/", $tag)) { 

很可能
$this->doc
的元素少于4个,但
$this->pos
的元素数等于4@TomislavTomiNikolic:我很惊讶,它对我来说效果很好。太好了,它在用\摆脱连字符后就像一个符咒。谢谢我想知道你是怎么想摆脱连字符的?这和我的大部分发现一样是偶然的吗?不管怎样,谢谢你的经验,它为我节省了大量的人才流失和时间。这与PHP版本有关吗?我想知道..@ScottFleming:这是一个普遍的错误<代码>字符类中的无效范围得到了自我解释。当然,在字符类中总是转义连字符。