首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >警告: preg_match() [function.preg-match]:编译失败:字符类中偏移量7处的范围无效

警告: preg_match() [function.preg-match]:编译失败:字符类中偏移量7处的范围无效
EN

Stack Overflow用户
提问于 2014-09-29 23:41:18
回答 1查看 5.6K关注 0票数 2

我刚刚遇到了这个与Colin Verot's upload script上的upload类相关的问题。

/^([\.-\w]+)\/([\.-\w]+)(.*)$/i

我已经像下面这样转义了它,但是我对preg_match/preg_replace的了解有点有限,只是想确认正确的“修复”。

/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i

抛出问题的行数在2899到3012之间

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-29 23:54:34

你的修复是正确的。[\.-\w]是一个字符类,连字符尝试做一个范围(即[0-9][a-z])。\w已经是[a-zA-Z0-9_]的缩写了,所以你不能说从.\w的范围。但是,我会让字符类看起来像这样:

[\w.-]

句点不需要转义,因为它在字符类中没有特殊含义(在外部它需要转义,因为它意味着“任何字符”)。连字符也不需要转义,只要它是字符类的第一个或最后一个字符(即不是范围)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26103709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档