【发布时间】:2021-01-30 14:30:55
【问题描述】:
如何从路径字符串中删除第一个目录(如果存在)?
我用gsub 和string.match 尝试了几次,但我无法正常工作。
输入:
/
/tmp/file.txt
/tmp/folder/file2.txt
/tmp/folder/.../file3.txt
输出:
/
/file.txt
/folder/file2.txt
/folder/.../file3.txt
【问题讨论】:
标签: lua
如何从路径字符串中删除第一个目录(如果存在)?
我用gsub 和string.match 尝试了几次,但我无法正常工作。
输入:
/
/tmp/file.txt
/tmp/folder/file2.txt
/tmp/folder/.../file3.txt
输出:
/
/file.txt
/folder/file2.txt
/folder/.../file3.txt
【问题讨论】:
标签: lua
local paths = {
'/',
'/tmp/file.txt',
'/tmp/folder/file2.txt',
'/tmp/folder/.../file3.txt'
}
for _, path in ipairs (paths) do
local trimmed = path:gsub ('^/[^/]+', '')
print (trimmed)
end
必要的正则表达式是^/[^/]+。它被锚定到字符串的开头,并且后面至少需要一个非斜线字符,这样/ 就不会匹配。
【讨论】:
#! /usr/bin/env lua
dirsep = package .config :sub( 1, 1 )
cwd = '/tmp/folder/file2.txt'
delimeter = { cwd :find( dirsep, 2 ) }
subdir = cwd :sub( delimeter [1] or 1 )
print( subdir )
/文件夹/file2.txt
【讨论】: