Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中查找与一组字符匹配的正确模式_Php_Regex_String_Match - Fatal编程技术网

在PHP中查找与一组字符匹配的正确模式

在PHP中查找与一组字符匹配的正确模式,php,regex,string,match,Php,Regex,String,Match,我正在搜索正确的模式以匹配字符串,该字符串可能仅包含以下字符: a-z A-z 0-9 此外: @!#$&'()+-,./[]_~ 我尝试了以下php代码: preg_match('/^[a-zA-Z0-9@\!#\$&\'\(\)\+,\-\./\[\]_~]{0,255}$/', $path) 我将被用于路径。在文件系统上创建任何目录之前,我只希望允许这些字符 但无论我如何改变模式,它都不会匹配正常路径 /bin/bash /home/user 为了使其工作,应该对其

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

a-z
A-z
0-9
此外:

@!#$&'()+-,./[]_~
我尝试了以下php代码:

preg_match('/^[a-zA-Z0-9@\!#\$&\'\(\)\+,\-\./\[\]_~]{0,255}$/', $path)
我将被用于路径。在文件系统上创建任何目录之前,我只希望允许这些字符

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

/bin/bash
/home/user

为了使其工作,应该对其进行哪些更改?

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

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

这些是路径的有效字符吗?我就知道。。。非常小的东西。谢谢!!:-)