加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式我不明白

发布时间:2020-12-13 22:54:46 所属栏目:百科 来源:网络整理
导读:我主演的这些几个(稍微修改)的线路从luadoc显然构建一个完整路径的文件名.但是我根本不知道第5行会发生什么. 参数filename可以是“myfile.lua”. function out_file (filename) local h = filename h = string.gsub(h,"lua$","tex") h = string.gsub(h,"luad
我主演的这些几个(稍微修改)的线路从luadoc显然构建一个完整路径的文件名.但是我根本不知道第5行会发生什么.
参数filename可以是“myfile.lua”.
function out_file (filename)
  local h = filename
  h = string.gsub(h,"lua$","tex")
  h = string.gsub(h,"luadoc$","tex")
  h = options.output_dir .. string.gsub (h,"^.-([%w_]+%.tex)$","%1")
  return h
end

第5行发生了什么?

h = options.output_dir .. string.gsub (h,"%1")

该模式匹配以零个或多个非字母数字字符(即空格等)开头的任何字符串,后跟一个或多个字母数字字符和下划线(可能是文件名),一段时间以及随后结束的字符串“tex”.它捕获文件名“.tex”供以后使用.基本上它在开头使用可能的垃圾字符(空格)的文件名,并用干净的版本替换它,然后将输出目录保存在前面.

现在可能会导致你的混淆呢.匹配任何字符但是当被终止修改时 – 意思是“在下一个匹配之前的零个或多个字符的最短字符串” – 即非贪婪搜索.它将匹配从字符串开头找到的任何字符,直到找到匹配化合物[%w_] – 字母数字或下划线的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读