Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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/1/oracle/10.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 Url解析正则表达式_Php_Regex - Fatal编程技术网

Php Url解析正则表达式

Php Url解析正则表达式,php,regex,Php,Regex,我正在使用以下代码: preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches); 解析url字符串。 有人能解释一下这个表达式解析什么吗? 因为它对/example非常有效,但对/example one或/example one来说,$matches不再有效[1]。谢谢 它不起作用,因为\w匹配字母数字字符加下划线。它将不匹配连字符和空格 简短的解决方案:将它们添加到字符类中,将\w转换为[\w-] 长解决方案:使用normal*special

我正在使用以下代码:

preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches);
解析url字符串。 有人能解释一下这个表达式解析什么吗? 因为它对/example非常有效,但对/example one或/example one来说,$matches不再有效[1]。谢谢

它不起作用,因为\w匹配字母数字字符加下划线。它将不匹配连字符和空格

简短的解决方案:将它们添加到字符类中,将\w转换为[\w-]

长解决方案:使用normal*special normal**最小化回溯量,normal为\w,special为[-]:

另请参见语法教程,或strfriend.com以获得直观的解释。
%^(\w+(?:[- ]\w+)*)(/(?:\w+(?:[- ]\w+)*))?$%