aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 10623|回复: 6

数组取数值,去除不要的字符

[复制链接]

5

主题

13

回帖

105

积分

一级会员

积分
105
发表于 2014-12-7 10:53:18 | 显示全部楼层 |阅读模式
有以下一维数组:

opc = {150片;200个;100pc;20pcs;5个半}

请教 怎样写能得到:

opc = {150;200;100;20;5.5}


先谢谢了。

2

主题

15

回帖

307

积分

二级会员

积分
307
发表于 2014-12-7 12:24:40 | 显示全部楼层
本帖最后由 thXnder 于 2014-12-7 12:26 编辑

import console;
var opc = {"150片";"200个";"100pc";"20pcs";"5个半"};
var opcVal = {};
for(i=1;#opc;1){
   
var val,val2 = string.match(opc[ i ], "^(\d+)<:>+?(<半>?)$");
   
//assert(val, "error: uncorrect format of element "++i);
    val += (val2=="半" ? 0.5 : 0);
    opcVal[ i ] = val;
}
console.dump(opcVal);
console.pause(
true);

5

主题

13

回帖

105

积分

一级会员

积分
105
 楼主| 发表于 2014-12-7 12:41:31 | 显示全部楼层
正在 学习  管理员 的
[文本分析] 模式匹配快速入门 ,,对不起发帖前没看这个。

13

主题

294

回帖

1790

积分

荣誉会员

积分
1790
发表于 2014-12-7 13:37:54 | 显示全部楼层
var 数值,长度 = tonumber("150片")
就可以转换为数值的150了,后面的文本会自动忽略的。

5

主题

13

回帖

105

积分

一级会员

积分
105
 楼主| 发表于 2014-12-7 14:43:09 | 显示全部楼层
thXnder 发表于 2014-12-7 12:24
import console;
var opc = {"150片";"200个";"100pc";"20pcs";"5个半"};
var opcVal = {};

谢谢您的指导和回复,谢谢,祝顺。

2

主题

21

回帖

161

积分

一级会员

积分
161
发表于 2017-11-9 23:28:29 | 显示全部楼层
  1. import console;
  2. opc = {"150片";"200个";"100pc";"20pcs";"5个半"}
  3. console.varDump(eval(string.replace(table.tostring(opc),":|[a-zA-Z]","")))
  4. console.pause(true);
复制代码

10

主题

77

回帖

530

积分

三级会员

积分
530
发表于 2017-11-10 16:21:05 | 显示全部楼层
auaau 发表于 2014-12-7 13:37
var 数值,长度 = tonumber("150片") 就可以转换为数值的150了,后面的文本会自动忽略的。

原来还可以这么用 学习了

  1. io.open()
  2. var opc = {"150片";"200个";"100pc";"20pcs";"5个半"};
  3. var opcVal = {};
  4. for(k,v in opc){
  5.         opcVal[k],len = tonumber(v)
  6.         io.print(k,opcVal[k])
  7. }
  8. execute("pause")
复制代码
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-7-18 04:14 , Processed in 0.055197 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表