北大侠客行MUD论坛

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

请教一个字符串处理的问题。

[复制链接]
发表于 2010-11-16 13:24:22 | 显示全部楼层 |阅读模式
有一个字符串,既有中文也有英文。比如
string="543abcdefg我有一oi0987个字符串abcd001234"

我想用函数的方法,截取出内部的汉字。形成一个新的字符串,然后每个汉字存入表格string_table里。
比如这个例子,
我希望的结果就是:
截取的字符串是:mystring="我有一个字符串",并且string_table[1]="我",string_table[2]="有".....。
请问,lua程序如何处理呢?
请高手指点如何做到。谢谢!!

[ 本帖最后由 littleknife 于 2010-11-16 01:26 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-11-16 13:26:50 | 显示全部楼层
能确定字符串中中文的编码么?是 GBK 还是 UTF-8 ?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-11-16 13:29:43 | 显示全部楼层
能弄一个单独的lua函数处理就成。
用赋值命令赋值字符串,string="....",应该是系统默认编码。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-11-16 13:43:21 | 显示全部楼层
原帖由 littleknife 于 2010-11-16 13:29 发表
能弄一个单独的lua函数处理就成。
用赋值命令赋值字符串,string="....",应该是系统默认编码。


编码必须搞清楚,因为环境不一样,虽然 Lua 都能处理,但结果却大不相同。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-11-16 13:48:07 | 显示全部楼层
MUSH中用赋值语句赋值的字符串属于什么编码?是utf8?还是ansi,好像是ansi.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-11-16 13:51:33 | 显示全部楼层
MUSH 从 MUD 中接收到的字符串,是由 MUD 决定的,相对北侠来说,因为北侠的编码是 GB2312 的,所以 MUSH 中接收到的字符串都是 GB2312 的。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-11-16 14:08:24 | 显示全部楼层
如果是 GBK,下面的代码就可以了。
  1. local a_str = "543abcdefg我有一oi0987个字符串abcd001234"

  2. a_str = string.gsub(a_str, "[%a,%d,%p]", "")

  3. local str_t = {}

  4. for i = 1, #a_str, 2 do

  5. local b_str = string.sub(a_str,i,i+1)

  6. table.insert(str_t, b_str)

  7. end --for

  8. table.foreach(str_t, print)
复制代码

[ 本帖最后由 ddid 于 2010-11-16 02:09 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-11-16 14:58:55 | 显示全部楼层
再次感谢,DDid,哈哈。太有用啦。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-11-16 15:01:46 | 显示全部楼层
用来干啥?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-11-16 15:13:19 | 显示全部楼层
哈哈。用来识别两个字符串的拟合程度。。比如,红豆题目乱码、在比如对比地点找金子等等。嘿嘿。。

[ 本帖最后由 littleknife 于 2010-11-16 03:15 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 12:05 AM , Processed in 0.009874 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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