我需要一个正则表达式从两种URI中提取。
http://example.com/path/to/page/?filter
http://example.com/path/to/?filter基本上,在这两种情况下,我都需要隔离并返回
/path/to和
?filter也就是说,/path/to和filter都是任意的。因此,我想我需要2正则表达式吗?我正在PHP中这样做,但是如果有人能帮助我处理正则表达式,我就可以找出其余的。谢谢你抽出时间:)
编辑:所以只想清理一下,例如
http://example.com/help/faq/?sort=latest我想让/help/faq和?sort=latest
另一个例子
http://example.com/site/users/all/page/?filter=none&status=2我想要/site/users/all和?filter=none&status=2。请注意,我不想得到page!
发布于 2010-02-26 23:16:05
与regex相比,使用url可能更容易,副作用更少:
$querystring = parse_url($url, PHP_URL_QUERY);
$path = parse_url($var, PHP_URL_PATH);然后,您可以在路径上使用first获取前两段:
$segments = explode("/", $path);发布于 2010-02-26 23:12:16
试试这个:
^http://[^/?#]+/([^/?#]+/[^/?#]+)[^?#]*\?([^#]*)这将为您获得前两个URL路径段和查询。
发布于 2010-02-26 23:12:23
未测试,但:
^https?://[^ /]+[^ ?]+.*哪一个应该匹配带有路径的http和https url,第二个参数应该匹配,直到?(例如,从?过滤器)和.* (除\n以外)任何字符。
https://stackoverflow.com/questions/2345445
复制相似问题