如何使用正则表达式删除PHP中的一段字符串?

时间:2017-02-14 13:33:24

标签: php string

我是PHP的新手,今天我发现了这个问题。我有这个字符串:

UserCell

我想删除一段字符串:从它的结尾到第一个反斜杠(在本例中为/index.php),只使用PHP中的正则表达式。

有办法吗?我尝试了这段代码,但它没有做任何事情:

442_38489_ext/index.php

你知道我的错误在哪里吗?

2 个答案:

答案 0 :(得分:0)

对我来说效果很好......

<?php
$something_not_important = '442_38489_ext/index.php';
$something_changed = preg_replace("/\/(.+?)$/", '', $something_not_important);
var_dump($something_changed);

上述代码的输出为:

string(13) "442_38489_ext"

也许您没有将调用的返回值分配给preg_replace()

答案 1 :(得分:0)

您可以使用dirname作为具体案例,或使用像'~/[^/]*$~'这样的正则表达式:

$something_not_important = "/more_here/442_38489_ext/index.php";
$s2 = dirname($something_not_important);
echo $s2 . "\n";

$s3 = preg_replace("~/[^/]*$~", '', $something_not_important);
echo $s3;

请参阅PHP demo

/[^/]*$模式匹配/,然后匹配/以外的0 +字符,直到字符串结尾($)。

另外,不要忘记将值赋给变量,否则不会更新。