在正则表达式中应该转义哪些文字字符?
我刚刚编写了一个正则表达式,用于包含以下部分的php函数:preg_match
[\w-.]
匹配任何单词字符,以及减号和点。虽然它似乎在preg_match工作,但我试图把它放到一个名为Reggy的实用程序中,它抱怨“char类中的空范围”。反复试验告诉我,这个问题是通过转义减号来解决的,将正则表达式变成
[\w\-.]
由于原文似乎在PHP中工作,我想知道为什么我应该或不应该转义减号,并且 - 因为点在PHP中也是一个有意义的字符 - 为什么我不需要转义点。我正在使用的实用程序只是愚蠢,它是否与另一种正则表达式方言一起使用,或者我的正则表达式真的不正确,我只是幸运地preg_match让我逃脱了它吗?