lua如何从字符串提取某一个字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua如何从字符串提取某一个字符相关的知识,希望对你有一定的参考价值。

假设
s="abcdefghij"
想要提取第5个字符'e'要用什么函数?
刚开始我想的是string.sub(s,5,5)
但是提取出来的是字符串"e"而不是'e'字符
请问要如何处理
打个比方
在VC里CString str="abcdefg"
获取第5个用的就是str.GetAt(4)
换到LUA里呢?
------------------
1楼我什么地方说不清楚
字符串s="abcdefghij"有什么不对

lua里不像c一样区分字符串和字符。

比如:

b = a:match("gig.-gvt") --提取包含头尾的字符串

print(b:sub(4, string.len(b)-3)) --去除头尾

总的来说通过string.match或者string.sub来提取字符串,结合patterns(弱化版的正则表达式)进行通配;具体得视源字符串的数据特征而定。

function string.split(input, delimiter)

input = tostring(input)

delimiter = tostring(delimiter)

if (delimiter=='') then return false end

local pos,arr = 0,

 -- for each divider found

for st,sp in function() return string.find(input, delimiter, pos, true) end do

table.insert(arr, string.sub(input, pos, st - 1))

pos = sp + 1

end

table.insert(arr, string.sub(input, pos))

return arr

end

扩展资料:

Lua还具有其它一些特性:同时支持面向过程(procedure-oriented)编程和函数式编程(functional programming);自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;语言内置模式匹配;

闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。

参考资料来源:百度百科-lua

参考技术A 这样的问题最好到csdn论坛去。

你的问题说得也糊涂,没看懂。字符串都是"..."这种形式的。
参考技术B 你还是应该先看一下lua的语法。lua里不像c一样区分字符串和字符。
对于一个字符串,无论是用单引号还是双引号包围起来效果是一样的。

举个例子吧:
> s = 'e'
> t = "e"
> if s == t then print("equal") end
equal

> print('e is good')
e is good

要是非得想要c风格的话,也可以试试string.byte()这个函数。
> s = 'abcdefghij'
> = string.byte(s, 5)
101本回答被提问者采纳

jQuery如何从字符串中提取某一数字

var trans = $("#view").css("transform");//输出的trans为matrix(1, 0, 0, 1, 0, -58)
var str=String(trans);
var t = str.match(/\d+/g)[5];
想把transfrom的第6个值赋给t;
先问一下输出的trans是什么数据类型?能按上边的方法转换字符串吗?
然后求帮我解决这个问题,我的目的是要得出#view的css中transfrom属性里matrix(1, 0, 0, 1, 0, -58)的第六个数(也就是-58),并将这个数赋给t,之后我要用t进行其他指令。
加入var t = str.match(/\d+/g)[5];后会显示cannot read property '5' of null;
或者直接告诉我提取到t=-58的其他方法,急求,谢谢!

参考技术A var temp=trans.split('(')[1].split(')')[0].split(',');
t=temp[5];追问

又是Cannot read property 'split' of undefined

追答

var temp=trans.tostring().split('(')[1].split(')')[0].split(',');
t=temp[5];

本回答被提问者和网友采纳
参考技术B var temp=trans.split('(')[1].split(')')[0].split(',');
t=temp[5];

以上是关于lua如何从字符串提取某一个字符的主要内容,如果未能解决你的问题,请参考以下文章

jQuery如何从字符串中提取某一数字

从Lua中的字符串中提取数字

Lua语言(stm32+2G/4G模块)和C语言(stm32+esp8266)从字符串中提取相关数据的方法-整理

Lua语言(stm32+2G/4G模块)和C语言(stm32+esp8266)从字符串中提取相关数据的方法-整理

Lua语言(stm32+2G/4G模块)和C语言(stm32+esp8266)从字符串中提取相关数据的方法-整理

Lua:如何从_G中提取函数?