正则表达式,如何匹配这个字符串?

Jac*_*don 1 php regex url

我有网址http://domain.com/script.php?l=7&p=146#p146.我希望能够在没有#的情况下获得p =之后的数字.此外,哈希可能并不总是存在,所以有时它可能会变成script.php?l=7&p=146.我知道它与正则表达式字符有关+,但我不完全确定如何使用它.有人可以创建正则表达式并解释它是如何工作的吗?

Mar*_*der 5

这里不需要正则表达式.

$query = parse_url("http://domain.com/script.php?l=7&p=146#p146", PHP_URL_QUERY);
parse_str($query, $params);
echo $params['p'];
Run Code Online (Sandbox Code Playgroud)

parse_url可以为您提供URL的所有不同元素.并parse_str获取一个查询字符串(您在其中找到的东西?#URL中的可选项)并为您计算出不同的参数.你也可以省略$params函数的参数,然后parse_str为你定义一些变量(之后你可以找到结果$p).但我个人不喜欢使用parse_str这种副作用.

如果您想阅读更多内容:PHP文档parse_urlparse_str