gpt4 book ai didi

php - preg_replace 仅匹配的一部分

转载 作者:可可西里 更新时间:2023-11-01 00:07:34 25 4
gpt4 key购买 nike

我正在使用 preg_replace 为基于 modrewrite 的分页链接创建 url。我使用:

$nextURL = preg_replace('%/([\d]+)/%','/'.($pageNumber+1).'/',$currentURL);

效果很好,但是我想知道是否有更好的方法而无需在替换参数中包含 '/'。我需要匹配两个 / 之间的数字,因为 URL 有时可以包含页面部分以外的数字。然而,这些数字绝不仅仅是数字,所以 /[\d]+/ 阻止它们被替换。

最佳答案

你可以使用 look-around assertions :

 %(?<=/)([\d]+)(?=/)%

(?<=…)是一个积极的后视断言并且(?=…)积极的前瞻性断言。正则表达式 (?<=/)([\d]+)(?=/)解释如下:

  • (?<=/) – 如果有 /在当前位置的后面
  • ([\d]+) – 匹配一位或多位数字
  • (?=/) – 但前提是存在 /之后

您还可以按如下方式简化表达式:

preg_replace('%(?<=/)\d+(?=/)%', $pageNumber+1, $currentURL)

关于php - preg_replace 仅匹配的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com