以下是一个例子,可以匹配访问地址中的路径和参数:

$regex = '/^(?P<path>[^?]*)(?:\?(?P<params>.*))?$/';

解释:

  • /^$ 分别代表字符串的开头和结尾,确保整个字符串都被匹配。
  • (?P<path>[^?]*) 匹配不包含问号的任意字符,即路径部分。使用命名捕获组 (?P<path>...),方便后续代码使用。
  • (?:\?(?P<params>.*))? 匹配问号和参数部分,使用非捕获组 (?:...)? 表示该组可选,即访问地址可能没有参数。(?P<params>...) 表示捕获参数部分,并命名为 params,方便后续代码使用。.* 表示匹配任意字符,直到字符串结尾。

使用示例:

$url = 'https://example.com/path/to/resource?foo=bar&baz=qux';
if (preg_match($regex, $url, $matches)) {
    $path = $matches['path']; // '/path/to/resource'
    $params = isset($matches['params']) ? $matches['params'] : ''; // 'foo=bar&baz=qux'
}
匹配访问地址的php正则

原文地址: https://www.cveoy.top/t/topic/MLX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录