lua 字符串分割提取
http://www.fancyengine.com/api_docs/api_list各种lua的API
如何将char*转成lua的string类型
先看一个简单的例子,如何实现一个简单的函数返回给定数值的sin值(更专业的实现应该检查他的参数是否为一个数字):
static int l_sin (lua_State *L) {
double d = lua_tonumber(L, 1); /* get argument */
lua_pushnumber(L, sin(d)); /* push result */
return 1; /* number of results */
}
任何在Lua中注册的函数必须有同样的原型,这个原型声明定义就是lua.h中的lua_CFunction:
typedef int (*lua_CFunction) (lua_State *L);
从C的角度来看,一个C函数接受单一的参数Lua state,返回一个表示返回值个数的数字。所以,函数在将返回值入栈之前不需要清理栈,函数返回之后,Lua自动的清除栈中返回结果下面的所有内容。
我们要想在Lua使用这个函数,还必须首先注册这个函数。我们使用lua_pushcfunction来完成这个任务:他获取指向C函数的指针,并在Lua中创建一个function类型的值来表示这个函数。一个quick-and-dirty的解决方案是将这段代码直接放到lua.c文件中,并在调用lua_open后面适当的位置加上下面两行:
lua_pushcfunction(l, l_sin);
lua_setglobal(l, “mysin”);
lua模式匹配 字符串"afa/asdfa/adf/asdfa.asd",截取出最后一个/和.之间的字符
是这个吗 str.substring(str.lastIndexOf("/")+1,str.indexOf("."))…
lua大侠,如何用lua将txt文件里的指定字符串替换成另外的字符串,并将替换的结果保存在txt文件中?
用gsub函数试试.如:x=’hdfhgsdj一月份kljkljjlk一月份bjkhkjh’y=string.gsub(x,’一月份’,’二月份’)print(y)
lua 删除字符串空格
str = "14:9f:e8:5c:06:0d";str2=string.gsub(str, ":", "");print(str2);
lua 高级函数解释 string:
总体来看 是一个把16进制转化成字符的函数 比如把37转化成数字7 实际上里面使用一个gsub 把两个相邻的字符替换成了一个匿名函数的返回值 而这个匿名函数则是把这个16进制的值转化成了对应的数字的char 整个函数总体而言的缺点就是gsub的匹配 匹配的是两个"." 这样允许匹配任意字符 但是我们的取值范围其实只有[0-9a-fA-F]
lua的string.format为什么比"."慢
大家直觉地认为".."操作符比string.format慢,这是个误解,实际上从连接字符串的效率来说".."比string.format快多了.先看看实验结果 10000000次实验,基础字符串11个字符 每次连接2个基础字符串 string.format 9秒; ".." 3秒 每次连接3个基础
lua中如何判断字符串中包含中文字符
遍历数组对每个字节使用string.byte()发现有大于127的,就是汉字
lua处理字符串
–如果想学习更多的lua字符串模式匹配请参考《Programming in Lua》第二十章String库 local str = "abcd efghi jk" local arr = {} for w in string.gmatch(str, "%S+") do table.insert(arr,w) end
lua怎样和字符串指针相兼容
我认为扩展Lua的基本方法之一就是为应用程序注册新的C函数到Lua中去. 当我们提到Lua可以调用C函数,不是指Lua可以调用任何类型的C函数(有一些包可以让Lua调用任意的C函数,但缺乏便捷和健壮性).正如我们前面所看到的,当C调…