匹配正则表达式我的网址

时间:2015-06-01 20:00:55

标签: php regex pagination

我正在尝试删除页面查询,在页面上构建分页。

网址是

$url = www.example.com?category=computers&page=10

正则表达式

$cleanUrl = preg_replace('/page=[0-9,]+&/', '', $url);

这不是找到匹配的吗?

2 个答案:

答案 0 :(得分:0)

你应该用〜来开始和结束你的模式。这将有效:

preg_replace('~&page=[0-9]+~', '', 'www.example.com?category=computers&page=10');

答案 1 :(得分:0)

您的正则表达式失败,因为您正在page参数后面搜索&符号及其值。

您可以通过在其后附加问号来使&符号成为可选项。

$url = 'www.example.com?category=computers&page=10';
$cleanUrl = preg_replace('/page=[0-9,]+&?/', '', $url);

示例,https://regex101.com/r/uW8uV8/1

要获得更多正则表达式,请尝试:

<?php
$url = 'www.example.com?&category=cat&page=10';
$cleanUrl = rtrim(preg_replace('/(&|\?)page=[0-9,]+&?/', '$1', $url), '&?');
echo $cleanUrl;

这需要rtrim函数来删除尾随参数glue。这将占... ...

  

页面本身,www.example.com?page = 10
  页面作为最后一个参数,www.example.com?specpecies = Wolf&amp; page = 10
  Page为第一个参数,www.example.com?page = 10&amp; specpecies = wolf
  页面作为中间参数,www.example.com?cat = tom&amp; mom = jerry&amp; page = 10&amp; specpecies = Wolf