用于在URL中提取锚点的正则表达式

时间:2010-06-24 02:48:11

标签: php regex

我正在尝试使用preg_replace从url中提取锚标记及其后面的所有内容。我找到一个删除#之后的所有内容,但是我想要一个删除#及其背后的所有内容。

http://blah.com#removethis

谢谢, 史蒂夫

5 个答案:

答案 0 :(得分:9)

您可以尝试parse_url功能:

$url = "http://blah.com#removethis";
print_r(parse_url($url));
  

fragment - 在hashmark#

之后

<强>输出:

Array
(
    [scheme] => http
    [host] => blah.com
    [fragment] => removethis
)

答案 1 :(得分:3)

没有正则表达式的另一种方式:

$newurl = substr($url, 0, strpos($url,"#")); 

答案 2 :(得分:2)

$url = preg_replace('/#.*$/', '', $url);

答案 3 :(得分:1)

$url = preg_replace('@#.*$@', '', $url);

答案 4 :(得分:0)

如果有适当的库函数来执行此任务,请不要使用正则表达式。