搜索
查看: 2969|回复: 6

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

[复制链接]

5

主题

18

帖子

105

积分

一级会员

Rank: 2

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

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

请教 怎样写能得到:

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


先谢谢了。
回复

使用道具 举报

2

主题

17

帖子

306

积分

二级会员

Rank: 3Rank: 3

积分
306
发表于 2014-12-7 12:24:40 | 显示全部楼层

[i=s] 本帖最后由 thXnder 于 2014-12-7 12:26 编辑 [/i] [align=left][font=新宋体][color=#000

本帖最后由 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

主题

18

帖子

105

积分

一级会员

Rank: 2

积分
105
 楼主| 发表于 2014-12-7 12:41:31 | 显示全部楼层

正在 学习 管理员 的 [文本分析] 模式匹配快速入门 ,,对不起发帖前没看这个。

正在 学习  管理员 的
[文本分析] 模式匹配快速入门 ,,对不起发帖前没看这个。
回复

使用道具 举报

12

主题

309

帖子

1798

积分

荣誉会员

Rank: 8Rank: 8

积分
1798
发表于 2014-12-7 13:37:54 | 显示全部楼层

[align=left][font=新宋体][color=#0000ff]var[/color][color=#000000] 数值,长度 = [/color]

var 数值,长度 = tonumber("150片")
就可以转换为数值的150了,后面的文本会自动忽略的。
回复

使用道具 举报

5

主题

18

帖子

105

积分

一级会员

Rank: 2

积分
105
 楼主| 发表于 2014-12-7 14:43:09 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=68337&ptid=12651][c

thXnder 发表于 2014-12-7 12:24
import console;
var opc = {"150片";"200个";"100pc";"20pcs";"5个半"};
var opcVal = {};

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

使用道具 举报

3

主题

24

帖子

159

积分

一级会员

Rank: 2

积分
159
发表于 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

主题

88

帖子

509

积分

三级会员

Rank: 4

积分
509
发表于 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, 2018-12-11 19:42 , Processed in 0.062507 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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