PHP RegEx从字符串

时间:2018-05-24 18:34:29

标签: php trim regex-negation truncate

在搜索了各种其他问题后,为了尝试自己解决这个问题,我已经做到了这一点,但我无法弄清楚如何添加额外的字符串。

// $url will actually be $_SERVER['REQUEST_URI']
$url = "/folder123/?id=foo"; // it could be "index.php?id=foo"

preg_replace_callback('#^/folder123/#', function($match) {
    return $match[1];
}, $url);

预期结果:?id = foo

使用我当前的代码,我将获得预期的结果;但我不知道如何检查index.php。我的意图是让字符串排除这两部分。

2 个答案:

答案 0 :(得分:1)

要匹配它们,您可以使用alternation后跟\K重置报告的匹配的起点。

^(?:/folder123/|index\.php)\K.*$

preg_replace_callback('#^(?:/folder123/|index\.php)\K.*$#', function($match) { return $match[0]; }, $url);

Demo

答案 1 :(得分:1)

我希望这可以帮到你:

$url = "index.php?id=foo22"; // it could be "index.php?id=foo"

preg_replace_callback('/(\?|\&).*/', function($match) {
    var_dump($match[0]) ;
}, $url);