正则表达式我不明白

前端之家收集整理的这篇文章主要介绍了正则表达式我不明白前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我主演的这些几个(稍微修改)的线路从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_] – 字母数字或下划线的内容.

猜你在找的正则表达式相关文章