zoukankan      html  css  js  c++  java
  • lua 基础库

    数学库:

      三角函数:math.sin, math.cos, math.tan, math.asin, math.acos 都以弧度为单位;

      指数和对数函数:exp, log, log10;

      取整函数:math.floor, math.ceil;

      最大最小函数:math.max math.min;

      随机函数:math.randomseed, math.random(无参数返回[0,1),有参数返回[1,n])

      常量:math.pi, math.huge

    table库:

      table.insert(t, v): 在数组末尾插入v;

      table.insert(t, i, v): 在数组指定位置插入v;

      table.remove(t): 从数组末尾删除元素;

      table.remove(t, i): 从数组指定位置删除元素;

      table.sort(t, func): 对数组进行排序,默认使用小于排序。func传入的是两个比较的数组元素,如果希望第一个在第二个之前,返回true,反之返回false;

      table.concat(t, split): 连接数组中的元素,返回一个字符串,split是分隔符;

    字符串库:

      string.upper和string.lower: 大小写转换;

      string.sub(s, i, j): 提取s中从i到j位置的字符,如果索引是负数,那么就从字符串结尾开始倒数,-2代表倒数第二个字符;

      string.char(n): 将一个整数或多个整数转换成字符,并连接它们为一个字符串返回;

      string.byte(str, i, j): 返回str从i到j位置的字符的asc码

      string.format(str, ...): 格式化字符串;

      string.find(str, substr, i): 从i位置开始,在str找到substr的开始位置和结束位置;

      string.match(str, substr, i): 和find类似,只是返回值是找到的子串,主要用于模式匹配;

      string.gsbu(str, substr, newstr, n): 在str中找到所有子串,并用newstr替换,n如果指定就会限制替换次数。返回替换后的字符串和替换次数; 

      string.gmatch(str, substr): 返回一个迭代器函数,可在for in中使用,每次迭代返回一个匹配到的子串;

      

    模式匹配:

      %a: 匹配字母

      %d: 匹配数字

      %l: 小写字母

      %u: 大写字母

      %w:字母和数字

      %s:空白字符

      %p: 标点符号

      %c: 控制字符

      %x: 十六进制

       %b: 匹配配对字符,%b() %b[]等

      +: 匹配1个或多个

      *: 匹配0个或多个,贪婪匹配

      -: 匹配0个或多个,非贪婪匹配

      ?: 匹配0个或1个

      ^: 以某个模式开头进行匹配

      $: 以某个模式结束进行匹配

      []: 自定义匹配字符

    匹配整数:string.find(str, "[+-]?%d+")

    匹配注释:string.find(str, "/%*.-%*/")

      (): 捕获模式匹配中的一部分子串

        local s = "today is "7/10/2012""

        print(string.find(s, "(")(%d+/%d+/%d+)(%1)")) // 10 20 " 7/10/2012 "

    替换:

      string.gsub的第三个参数可以是:

        一个替换字符串;

        一个函数:会在每次找到匹配的时候调用该函数,函数参数是匹配到的子串,返回值是替换字符串,如果返回nil表示不进行替换;

        一个table:会在每次找到匹配的时候,用匹配到的子串作key,在table中寻找value,如果有就替换,没有就不进行替换;

    解析url编码

    function unescape (url)
        url = string.gsub(url, "+", " ")
        url = string.gsub(url, "%%(%x%x)", function (substr)
                print(substr)
                return string.char(tonumber(substr, 16))
            end)
        return url
    end
    
    function escape (url)
        url = string.gsub(url, "[&=+%%%c]", function (c)
                return string.format("%%%02x", string.byte(c))
            end)
        url = string.gsub(url, " ", "+")
        return url
    end
  • 相关阅读:
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Path Sum
    Symmetric Tree
    Solve Tree Problems Recursively
    632. Smallest Range(priority_queue)
    609. Find Duplicate File in System
    poj3159最短路spfa+邻接表
  • 原文地址:https://www.cnblogs.com/iRidescent-ZONE/p/5651291.html
Copyright © 2011-2022 走看看