找到正确的模式以匹配PHP中的一组字符

时间:2014-05-20 20:55:45

标签: php regex string match

我正在搜索正确的模式以匹配字符串,该字符串可能只包含以下字符:

a-z
A-z
0-9

以及其他:

@!#$&'()+-,./[]_~
我试过这个PHP代码:

preg_match('/^[a-zA-Z0-9@\!#\$&\'\(\)\+,\-\./\[\]_~]{0,255}$/', $path)

我将被用于路径。我想在文件系统上创建任何目录之前只允许这些字符。

但无论我如何改变模式,它都不会像正常路径那样匹配

/bin/bash
/home/user

应该改变什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

当您使用正斜杠作为分隔符时,您需要将其转义:

preg_match('/^[a-zA-Z0-9@\!#\$&\'\(\)\+,\-\.\/\[\]_~]{0,255}$/', $path)
                                            ^^ here