北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: littleknife

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

[复制链接]
发表于 2010-11-16 15:16:21 | 显示全部楼层
噢,有意思 。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 16:15:31 | 显示全部楼层
穷举法去掉a-zA-Z0-9就行了,常用的一共就这些,最多加上一些标点符号
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 16:29:42 | 显示全部楼层
原帖由 littleknife 于 2010-11-16 15:13 发表
哈哈。用来识别两个字符串的拟合程度。。比如,红豆题目乱码、在比如对比地点找金子等等。嘿嘿。。


不断地 for v in ipairs(hongdou_ti) do ... 也是一种解决红豆乱码的办法。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 18:28:56 | 显示全部楼层
用双字节来获取汉字的方式,我曾在mush 443下做过,发现还是有些汉字是截取不了的,应该类似ddid那样的做法吧。不知道现在高版本的mush好些了没。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 18:41:55 | 显示全部楼层
发现还是有些汉字是截取不了的


最好举例说明。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 18:56:33 | 显示全部楼层
原帖由 ddid 于 2010-11-16 18:41 发表


最好举例说明。


很久以前,不是很记得了,也有可能是我算法有问题。试了一下ddid这个还是挺好的,不过遇到空格还是有点问题。
字符串:local a_str = "543abcdefga我有一o二i三0四9五8六7七八h九a十个字符串abcd001234"
效果:
1 我
2 有
3 一
4 二
5 三
6 四
7 五
8 六
9 七
10 八
11 九
12 十
13 个
14 字
15 符
16 串



字符串:local a_str = "543abcdefga我有一 o 二i三0四9五8六7七八h九a十个字符串abcd001234"
第一个空格是半角,第二个空格是全角。
效果:
1 我
2 有
3 一
4  ?
5 《
6 ?
7 ?
8 奈
9 辶
10 ?
11 甙
12 司
13 攀
14 ?
15 鲎
16 址
17 ?
18 ?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 20:05:01 | 显示全部楼层
用string.byte来判断当前字节是不是大于127,大于的话就当他是汉字,string.sub要取两个字节。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 21:00:53 | 显示全部楼层

回复 16楼 的帖子

字符串匹配的时候加 %s 就解决了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 21:03:15 | 显示全部楼层
原帖由 maper 于 2010-11-16 20:05 发表
用string.byte来判断当前字节是不是大于127,大于的话就当他是汉字,string.sub要取两个字节。


没错,对 GBK 连续的两位都要判断,对 UTF-8 需要判断 1-4 位。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2010-11-16 21:25:22 | 显示全部楼层
原帖由 ddid 于 2010-11-16 21:00 发表
字符串匹配的时候加 %s 就解决了。


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

1 我
2 有
3 一
4  
5 二
6 三
7 四
8 五
9 六
10 七
11 八
12 九
13 十
14 个
15 字
16 符
17 串
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 10:05 PM , Processed in 0.013905 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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