我正在搜索正确的模式以匹配字符串,该字符串可能只包含以下字符:
a-z
A-z
0-9
以及其他:
@!#$&'()+-,./[]_~
我试过这个PHP代码:
preg_match('/^[a-zA-Z0-9@\!#\$&\'\(\)\+,\-\./\[\]_~]{0,255}$/', $path)
我将被用于路径。我想在文件系统上创建任何目录之前只允许这些字符。
但无论我如何改变模式,它都不会像正常路径那样匹配
/bin/bash
/home/user
应该改变什么才能让它发挥作用?
答案 0 :(得分:0)
当您使用正斜杠作为分隔符时,您需要将其转义:
preg_match('/^[a-zA-Z0-9@\!#\$&\'\(\)\+,\-\.\/\[\]_~]{0,255}$/', $path)
^^ here