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, ))
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 基础库的更多相关文章
- Lua基础 函数(一)
转自: http://blog.csdn.net/wzzfeitian/article/details/8653101 在Lua中,函数是对语句和表达式进行抽象的主要方法.既可以用来处理一些特殊的工作 ...
- Lua 学习之基础篇五<Lua OS 库>
lua os库提供了简单的跟操作系统有关的功能 1.os.clock() 返回程序所运行使用的时间 local nowTime = os.clock() print("now time is ...
- Lua字符串库(整理)
Lua字符串库小集 1. 基础字符串函数: 字符串库中有一些函数非常简单,如: 1). string.len(s) 返回字符串s的长度: 2). string.rep(s,n) 返回 ...
- cocos2d-x开发:服务端基础库封装
元旦前面几天都在忙着面试,随后的几天也就一直在做服务端基础库开发方面的工作.对于服务端开发,是很久之前的事情了.那时候我还在大学读书,一直都是在倒腾服务端开发方面的东西,毕业后参加公司工作就是一直从事 ...
- Step By Step(Lua字符串库)
Step By Step(Lua字符串库) 1. 基础字符串函数: 字符串库中有一些函数非常简单,如: 1). string.len(s) 返回字符串s的长度: 2). string ...
- Step By Step(Lua基础知识)
Step By Step(Lua基础知识) 一.基础知识: 1. 第一个程序和函数: 在目前这个学习阶段,运行Lua程序最好的方式就是通过Lua自带的解释器程序,如: /> l ...
- F#之旅5 - 小实践之下载网页(爬虫基础库)
参考文章:https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/fvsc-download.html 参考的文章教了我们如 ...
- Lua 基础
Lua 5.3 的中文手册, http://cloudwu.github.io/lua53doc 在线浏览 --第一部分 -- 两个横线开始单行的注释 --[[ 加上两个[和]表示 多行的注释. -- ...
- Lua标准库- 模块(Modules)
Lua包库为lua提供简易的加载及创建模块的方法,由require.module方法及package表组成 1.module (name [, ···]) 功能:建立一个模块. module的处理流程 ...
随机推荐
- IOS 瀑布流
本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectio ...
- HttpContext.Current.Cache 和HttpRuntime.Cache的区别
先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象. HttpRuntime.Cache:获取当前应用程序的Cac ...
- 【转】Styling And Animating SVGs With CSS
原文转自:http://www.smashingmagazine.com/2014/11/03/styling-and-animating-svgs-with-css/?utm_source=CSS- ...
- C++学习笔记24:makefile文件
makefile make命令:负责c/c++程序编译与链接 make根据指定命令进行建构 建构规则文件:GNUmakefile , makefile,Makefile makefile 文件格式 m ...
- python的复制,深拷贝和浅拷贝的区别
在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,[& ...
- pasa的安装
介绍: http://pasapipeline.github.io/ 参考别人的安装教程:http://sihua.us/pasa.htm 软件下载: https://github.com/PASAp ...
- 一个基于ANTLR 4的布尔表达式语句解释器的实现
Reference The Definitive ANTLR 4 Reference, 2nd Edition. 0 Features labeled grammar definition, i.e. ...
- MVC的用法和作用
最近在学习IOS项目的时候,老师经常提起MVC,在理解的过程中,越来越发现MVC的魅力,MVC:M:Model V:View C:Controller:Model 是用来存储数据的,View 是用来显 ...
- PCL常见编程问题
1.如何获取pcd文件点云里点的格式,比如是pcl::PointXYZ还是pcl::PointXYZRGB等类型? #include <pcl/io/pcd_io.h> #include ...
- 重放攻击(Replay Attacks)
重放攻击(Replay Attacks)1.什么是重放攻击顾名思义,重复的会话请求就是重放攻击.可能是因为用户重复发起请求,也可能是因为请求被攻击者获取,然后重新发给服务器. 2.重放攻击的危害请求被 ...