北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 7147|回复: 11

【Lua】请教解法

[复制链接]
发表于 2010-7-24 11:52:43 | 显示全部楼层 |阅读模式
是否有函数抓取并叠加某些指定的字符?

比如说:
六十六粒养精丹(Yangjing dan)

用string.find可以识别:
if string.find("一|二|三|四|五|六|七|八|九|十|百",wildcards[1]) ~= nil then
end

但如何抓取“六十六”呢?
复杂一点的解法可能可以做到,但是否有简便的函数呢?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-7-24 12:31:06 | 显示全部楼层
日,你把六十六全抓下来,再转成数字不就完了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-7-24 12:42:07 | 显示全部楼层
helllua里提供一个算法的.
是把"粒"前面的内容抓下来再转换......
然后那个里面整了粒,颗,把,个....N多一大串,经我的拣垃圾机器人试验,除了五香花生搞不定,别的北侠物品都可以搞定.我记得是在system模块
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-7-24 12:56:16 | 显示全部楼层
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-7-24 13:47:59 | 显示全部楼层
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-7-24 15:40:21 | 显示全部楼层
楼上几位可能没理解我的做法。
看看我的正则:
^(.+)\((.+)\)$
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-7-24 15:59:16 | 显示全部楼层
不明白你在说什么
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-7-24 18:02:26 | 显示全部楼层
原帖由 killunix 于 2010-7-24 15:59 发表
不明白你在说什么


按照我贴出来的正则,你怎么抓“六十六”这些数字出来?
不要用其他正则,其他正则的方式我知道怎么解,我需要知道的是按这个正则怎么简便的抓数字出来。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-7-24 20:08:21 | 显示全部楼层
按照这个正则你要解析出数字,首先你取出六十六粒养精丹以后肯定需要下一个正则或者其他方式把粒和养精丹剔除掉,正则最简单。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-7-24 23:59:21 | 显示全部楼层
只好自己动手了。搞了好久,发现lua和汉字是有点不兼容的,又弄了些取巧的办法。

function on_item1 (name, line, wildcards)
    local number = 1
if string.find("一|二|三|四|五|六|七|八|九|十", string.sub(wildcards[1], 1, 1)) ~= nil then
  number = ctonum(string.sub(wildcards[1], 1, string.len(wildcards[1])))
  ArraySet ("item", string.lower(wildcards[2]), number)
else
     ArraySet ("item", string.lower(wildcards[2]), 1)
end
end


效果:
waist 1
silver 51
bingpo zhang 1
sword 1
gan liang 10
gold 29
armor 1
boots 1
ring 1
blade 1
jiudai 8
head 1
staff 1
yangjing dan 66
necklace 1
wrists 1
surcoat 1
cloth 1
coin 12
hands 1
jinchuang yao 99
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-9-28 11:31 PM , Processed in 0.011020 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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