我有一个标准的Windows文件名与路径.我需要从字符串中分割出文件名,扩展名和路径.
我目前正在简单地从最后寻找字符串.切断扩展,并获得第一个\路径.
我确信我应该能够使用Lua模式执行此操作,但是当我从字符串的右侧开始工作时,我仍然会失败.
例如.c:\ temp\test\myfile.txt应该返回
如果这是重复的话,请提前感谢道歉,但我可以找到很多其他语言的例子,但不是Lua的例子.
我很乐意在Lua的windows系统中启动一个程序
strProgram = '"C:\\Program Files\\Ps Pad\\PSPad.exe"'
strCmd = 'start "" '..strProgram
os.execute(strCmd)
Run Code Online (Sandbox Code Playgroud)
这可以正常工作,启动程序和脚本完成.然而,如果它在几分之一秒内闪现命令窗口,那么任何人都可以从Lua启动程序.
我有一个搜索替换脚本,可以替换字符串.它已经可以选择进行不区分大小写的搜索和"转义"匹配(例如,允许在搜索中搜索%(等).
我怎么现在只被要求匹配整个单词,我已经尝试将%s添加到每一端,但是这与字符串末尾的单词不匹配,我无法找出如何陷入白色 - 在更换过程中发现的空间物品完好无损.
我是否需要使用string.find重做脚本并为单词检查添加逻辑,或者使用模式添加逻辑.
我用于不区分大小写和转义的项目的两个函数如下所示都返回要搜索的模式.
-- Build Pattern from String for case insensitive search
function nocase (s)
s = string.gsub(s, "%a", function (c)
return string.format("[%s%s]", string.lower(c),
string.upper(c))
end)
return s
end
function strPlainText(strText)
-- Prefix every non-alphanumeric character (%W) with a % escape character, where %% is the % escape, and %1 is original character
return strText:gsub("(%W)","%%%1")
end
Run Code Online (Sandbox Code Playgroud)
我有办法做我现在想做的事,但它不够优雅.有没有更好的办法?
local strToString = ''
local strSearchFor = strSearchi
local strReplaceWith = strReplace
bSkip = false
if fhGetDataClass(ptr) == 'longtext' then …Run Code Online (Sandbox Code Playgroud)