在正则表达式中包含点(.)和连字符(-)


include dot(.) and hyphen(-) in a regex

 if(preg_match('/[^a-z'-0-9]/i', $value))
    {
    echo "<META HTTP-EQUIV='Refresh' Content='0; URL=http://$ponka/name/error'>";
}

如何在上面的代码中包含点和连字符?我知道如何在代码中添加点或连字符也就是if-yes-then-if-then-else。这段代码是if-no-then-if-then-else(如果你明白我想说的)

如果hyphen 是字符类中的第一个最后一个,则不需要对进行转义。dot在字符类[]中使用时需要转义,即:

/[^a-z.0-9-]/i

指出:

除了以上,在字符类中需要转义的元字符有:

^ (negation)
- (range)
] (end of the class)
' (escape char)

连字符已经在那里了,只需使用'.添加一个转义点。

/edit:但是正如注释中所指出的,不需要转义

假设您正在谈论正则表达式,您可以使用斜杠'转义。

/[^a-z'.'-0-9]/i

如果连字符是Regex组中的最后一个字符,则不需要转义。但是点应该总是被转义,所以

'/[^a-z'.0-9-]/i'

将检查a到z0 ~ 9-,不区分大小写。