首页 > 生活 > 娱乐

按键精灵把字符串处理为数值(按键精灵插件源码)

时间:2023-01-31 06:47:41 作者: 阅读:0

大家好,我是公众号3分钟学堂的郭立员~

去除字符串中的标点符号不算个常用的功能,偶尔会用到,比如做采集脚本时,如果采集用户名称中有表情符号,则无法显示会以问号代替。

通常我想到的解决办法是“过滤”,一段文字中有效的字符就是中文、英文和数字,那么我只需要把这些类型的字符串提取出来行了。

关于在大量字符中提取指定字符,最常用的方式就是正则匹配,在按键中使用的是lua正则匹配,关于数字、字母在lua中都用明确的正则表达式,但是中文没有,一般会用[\128-\254] 这个表达式:

Import "shanhai.lua" Dim str="你好囧犇hello 水电费world3aasdas50849638" Dim 汉字=shanhai.RegexFind(str,"[\128-\254] ") TracePrint 汉字(0)

这个意思是提取ascII码 128-254,如果字符串中含有一些特殊符号,比如表情符号,就会当成中文处理,这样就不准确了。

去掉特殊符号,最开始想到的办法是字符串替换,就是用空值替换掉特殊符号,后来发现由于特殊符号在按键里面都是以问号显示,没法替换。这就不得不想其他办法。

按键精灵既然不行,那就试试lua,于是找了一个lua的处理代码封装成函数,来处理掉这些特殊符号。

代码如下:

function QMPlugin.filter_spec_chars(s) local ss = {} local k = 1 while true do if k > #s then break end local c = string.byte(s, k) if not c then break end if c < 192 then if (c >= 48 and c <= 57) or (c >= 65 and c <= 90) or (c >= 97 and c <= 122) then table.insert(ss, string.char(c)) end k = k 1 elseif c < 224 then k = k 2 elseif c < 240 then if c >= 228 and c <= 233 then local c1 = string.byte(s, k 1) local c2 = string.byte(s, k 2) if c1 and c2 then local a1, a2, a3, a4 = 128, 191, 128, 191 if c == 228 then a1 = 184 elseif c == 233 then a2, a4 = 190, c1 ~= 190 and 191 or 165 end if c1 >= a1 and c1 <= a2 and c2 >= a3 and c2 <= a4 then table.insert(ss, string.char(c, c1, c2)) end end end k = k 3 elseif c < 248 then k = k 4 elseif c < 252 then k = k 5 elseif c < 254 then k = k 6 end end return table.concat(ss) end

使用方法是把代码放入文本里面,另存为lua后缀的文件,然后放到按键的插件目录里面。

按键精灵把字符串处理为数值(按键精灵插件源码)(1)

traceprint xm.filter_spec_chars(str)

这个插件功能很多单一,就是去掉各种符号,保留中文、字母和数字。

=正文完=

,

图文新闻

相关文章

热门资讯

评论

1111111

更多推荐

电脑开机取消f1设置方法(电脑开机怎么去掉F1)
电脑开机取消f1设置方法(电脑开机怎么去掉F1)

如果你电脑开机后需要按F1才能进系统,但是进入系统后,却没有任何上操作的问题。但是,每次电脑开机都需要按F1键就很麻烦。 1、

2023-01-31
好用的pdf格式转换软件(免费转换各种格式的神器)
好用的pdf格式转换软件(免费转换各种格式的神器)

经常遇到下载了一个文档资料,想着先编辑里面内容再交给老板过目的情况,但往往发现下载下来的是不好编辑的格式。 别担心,

2023-01-31
按键精灵把字符串处理为数值(按键精灵插件源码)
按键精灵把字符串处理为数值(按键精灵插件源码)

大家好,我是公众号3分钟学堂的郭立员~ 去除字符串中的标点符号不算个常用的功能,偶尔会用到,比如做采集脚本时,如果采集用户名称

2023-01-31
十年前的惠普笔记本电脑机型(成永劫无间决赛官方御用电脑)
十年前的惠普笔记本电脑机型(成永劫无间决赛官方御用电脑)

对于“自古红蓝出CP”这个梗,相信很多二次元迷肯定不会感到陌生,很多番剧里,以红色为标志的角色和以蓝色为标志的角色,往往互动会比

2023-01-31
物流信息系统的实施步骤是什么(物流信息系统在与生产体系的互动中发展)
物流信息系统的实施步骤是什么(物流信息系统在与生产体系的互动中发展)

近年来,数字化技术和智能化产品日新月异的发展,加速了供应链体系模式的转变和水平的提升,促进了制造体系“多、快、好、省”地满足

2023-01-31
用友预收货款冲减应收账款(缙云用友-服装erp软件)
用友预收货款冲减应收账款(缙云用友-服装erp软件)

用友预收货款冲减应收账款?应付账款大家都不陌生,是会计科目的一种,那么应付账款可以用现金支付吗,很多朋友还不不够了解,缙云服装er

2023-01-31
欠费停机如何交话费(停机断网也能充话费了)
欠费停机如何交话费(停机断网也能充话费了)

在日常生活当中,我们常常碰到这样的情况:当手机停机后,我们要充值话费来恢复使用。但是这个时候却不能使用自己的手机进行充值,只能

2023-01-31
苹果siri这个功能都能做些什么(苹果要对Siri进行革命性升级)
苹果siri这个功能都能做些什么(苹果要对Siri进行革命性升级)

传言中 展开 苹果正在计划对 Siri 进行一次革命性的升级。完成升级之后,Siri 的先进性将会超越目前移动平台上的所有竞

2023-01-31
软件产品经理必须技术吗(系统工程对产品经理工作的启发)
软件产品经理必须技术吗(系统工程对产品经理工作的启发)

系统工程为了实现系统的最终目标,对系统的各个子系统、部件以及信息流等进行研究分析与设计,使用各种组织和管理技术,使整体系

2023-01-31
木马病毒清除cmd命令(如何查看电脑是否中木马)
木马病毒清除cmd命令(如何查看电脑是否中木马)

大家好,这期电脑小课堂教大家一个非常实用的小命令,网络监听命令。 或许大家对这个命令不是很了解,这个命令有什么作用? 这

2023-01-30
返回顶部