为什么这个pregmatch模式在数字输入上返回true?

mag*_*iam 0 php preg-match

我知道这对某些人来说非常基本,但这让我头疼.为什么这种模式

/[!@#$%^&*()+|.*-<>\'`]/ 
Run Code Online (Sandbox Code Playgroud)

在数字输入上返回true,即abcd123.在这个测试仪上测试它

Esa*_*ija 5

您需要转义破折号,否则将其解释为字符范围\x2A-\x3E:

/[!@#$%^&*()+|.*\-<>\'`]/ 
Run Code Online (Sandbox Code Playgroud)

  • 是的,字符`*+, - ./ 0123456789:; <`落在该范围内 (2认同)