我是PHP的新手,今天我发现了这个问题。我有这个字符串:
UserCell
我想删除一段字符串:从它的结尾到第一个反斜杠(在本例中为/index.php),只使用PHP中的正则表达式。
有办法吗?我尝试了这段代码,但它没有做任何事情:
442_38489_ext/index.php
你知道我的错误在哪里吗?
答案 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 +字符,直到字符串结尾($
)。
另外,不要忘记将值赋给变量,否则不会更新。