我有一个字符串如下:
$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/