数学库:

  三角函数: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, ))
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

lua 基础库的更多相关文章

  1. Lua基础 函数(一)

    转自: http://blog.csdn.net/wzzfeitian/article/details/8653101 在Lua中,函数是对语句和表达式进行抽象的主要方法.既可以用来处理一些特殊的工作 ...

  2. Lua 学习之基础篇五<Lua OS 库>

    lua os库提供了简单的跟操作系统有关的功能 1.os.clock() 返回程序所运行使用的时间 local nowTime = os.clock() print("now time is ...

  3. Lua字符串库(整理)

    Lua字符串库小集 1. 基础字符串函数:    字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度:    2). string.rep(s,n) 返回 ...

  4. cocos2d-x开发:服务端基础库封装

    元旦前面几天都在忙着面试,随后的几天也就一直在做服务端基础库开发方面的工作.对于服务端开发,是很久之前的事情了.那时候我还在大学读书,一直都是在倒腾服务端开发方面的东西,毕业后参加公司工作就是一直从事 ...

  5. Step By Step(Lua字符串库)

    Step By Step(Lua字符串库) 1. 基础字符串函数:    字符串库中有一些函数非常简单,如:    1). string.len(s) 返回字符串s的长度:    2). string ...

  6. Step By Step(Lua基础知识)

    Step By Step(Lua基础知识) 一.基础知识:    1. 第一个程序和函数:    在目前这个学习阶段,运行Lua程序最好的方式就是通过Lua自带的解释器程序,如:    /> l ...

  7. F#之旅5 - 小实践之下载网页(爬虫基础库)

    参考文章:https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/fvsc-download.html 参考的文章教了我们如 ...

  8. Lua 基础

    Lua 5.3 的中文手册, http://cloudwu.github.io/lua53doc 在线浏览 --第一部分 -- 两个横线开始单行的注释 --[[ 加上两个[和]表示 多行的注释. -- ...

  9. Lua标准库- 模块(Modules)

    Lua包库为lua提供简易的加载及创建模块的方法,由require.module方法及package表组成 1.module (name [, ···]) 功能:建立一个模块. module的处理流程 ...

随机推荐

  1. Android GridView的使用

    Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来应用的比较多的就是组合图片显示下面我就详细讲一个例子 首先写一个类继承BaseAdapter 1. Java代码 1 ...

  2. Android常见控件— — —EditText

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...

  3. checkbox选中与取消选择

    先上代码 <form> 你爱好的运动是?<br/> <input type="checkbox" name="items" val ...

  4. Unity3D之实现背景的无限重复生成

    在制作flappyBird这个小游戏中(摄像机为Orthographic),为了无限重复生成背景,可以先做好三个背景(我做的有点小),在Gamecontroller上挂一个脚本,如下:      pu ...

  5. ionic-native-transitions调用原生页面切换实现ionic路由切换

    废话不多说:ionic-native-transitions调用原生页面切换实现ionic路由切换,从而大大提升ionic应用的性能. ionic-native-transitions是一个ionic ...

  6. android studio Keymap快捷键

    android studio整理代码格式的快捷键 在设置里面看 File-->Setting-->Keymap-->Reformat Code 或者在Keymap右上的搜索栏搜 Re ...

  7. Ioc正解

    IoC是一种模式 IoC(Inversion of Control)中文译为控制反转,目前Java社群中流行的各种轻量级容器的实现都是以IoC模式作为基础的.控制反转意味着在系统开发过程中,设计的类将 ...

  8. SQL Server Profiler工具

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...

  9. Silverlight管理系统源代码(SilverlightOAFlame开发框架主要提供二次开发)

    Silverlight OA系统简介 系统功能简介 l 程序界面介绍: 左侧为主菜单,主菜单可以展开和收起,主菜单下面的所有模块都可以在数据库中扩展增加,模块的权限和用户角色挂钩,可以在数据库中创建多 ...

  10. 使用.net的Cache框架快速实现Cache操作

    本文转载自:http://www.cnblogs.com/TianFang/p/3430169.html .NET 4.0中新增了一个System.Runtime.Caching的名字空间,它提供了一 ...