我刚刚遇到了这个与Colin Verot's upload script上的upload类相关的问题。
/^([\.-\w]+)\/([\.-\w]+)(.*)$/i
我已经像下面这样转义了它,但是我对preg_match/preg_replace的了解有点有限,只是想确认正确的“修复”。
/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i
抛出问题的行数在2899到3012之间
发布于 2014-09-29 23:54:34
你的修复是正确的。[\.-\w]
是一个字符类,连字符尝试做一个范围(即[0-9]
或[a-z]
)。\w
已经是[a-zA-Z0-9_]
的缩写了,所以你不能说从.
到\w
的范围。但是,我会让字符类看起来像这样:
[\w.-]
句点不需要转义,因为它在字符类中没有特殊含义(在外部它需要转义,因为它意味着“任何字符”)。连字符也不需要转义,只要它是字符类的第一个或最后一个字符(即不是范围)。
https://stackoverflow.com/questions/26103709
复制相似问题