我有一个字符串如下:

$str = "/dir1/dir2/dir3/file.txt"

我想从这个字符串中删除 /file.txt

这样 $str 就会变成。
$str = "/dir1/dir2/dir3"

我正在使用以下正则表达式。但它正在取代一切。
$str =~ s/\/.*\.txt//;

如何让正则表达式查找最后一个 '/' 而不是第一个。

什么是正确的正则表达式?

请注意 file.txt 不是固定名称。它可以是 file1.txt file2.txt 等。

最佳答案

在这个正则表达式中

m/(.*)\/[^\/]*$/

第一个子匹配是您要查找的路径。

编辑:

如果您正在寻找替代用户1215106的soultion是要走的路:
s/\/[^\/]*$//

关于regex - Perl 正则表达式替换最后匹配的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11177653/

10-11 22:40
查看更多