如何用Lua表达式从路径字符串中提取指定目标名称?
解决Lua字符串提取问题
你可以通过两种方式实现需求:
方法一:修正gsub的匹配模式
原代码中gsub('%testing_=', '')的模式错误,%在这里多余且误加了=。只需匹配开头的testing_并替换为空即可:
local x = "/archive/testing_Android.Users activity.log" local name = x:match"^.+/(.+).log$":gsub('^testing_', '') print(name) -- 输出:Android.Users activity
这里^testing_表示匹配字符串开头的testing_,确保只去掉最前面的目标前缀。
方法二:直接在match中完成提取(更高效)
调整正则匹配模式,直接跳过testing_部分,一步拿到结果:
local x = "/archive/testing_Android.Users activity.log" local name = x:match"^.+/testing_(.+).log$" print(name) -- 输出:Android.Users activity
这个模式^.+/testing_(.+).log$的含义是:
^.+匹配字符串开头到最后一个/的部分/testing_匹配固定的前缀部分(.+)捕获我们需要的Android.Users activity部分.log$匹配结尾的.log
内容的提问来源于stack exchange,提问作者Zain
相关产品推荐
相关产品推荐

