日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

按鍵精靈插件源碼 按鍵精靈把字符串處理為數(shù)值

大家好 , 我是微信官方賬號3分鐘學(xué)堂的郭成員~
刪除字符串中的標(biāo)點符號不是一個常用的功能 , 但偶爾會用到 。比如在制作采集腳本時 , 如果用戶名字中有表情符號 , 則無法顯示 , 會被一個問號代替 。
通常我想到的解決辦法是“過濾” 。段落中的有效字符是中文、英文和數(shù)字 , 所以我只需要提取這些類型的字符串 。
正則匹配是從大量字符中提取指定字符最常用的方法 。lua正則匹配用在key中 , lua中的數(shù)字和字母用顯式正則表達(dá)式 , 中文沒有 。通常使用[8-4]這種表達(dá)方式:
導(dǎo)入& # 34;山海. & # 34Dim str = & # 34;你好 , 你好 , 水電 , world3aasdas50849638 & # 34暗淡的漢字=上海 。regexfind (str , & # 34;[8-4] ")TracePrint漢字(0)
這意味著提取ascII碼128-254 。如果字符串中包含一些特殊符號 , 比如表情符號 , 就會被當(dāng)作中文 , 這是不準(zhǔn)確的 。
最早擺脫特殊符號的方法是字符串替換 , 即用空值替換特殊符號 。后來發(fā)現(xiàn)特殊符號顯示在帶問號的按鍵里 , 無法替換 。這個得想別的辦法 。
既然按鍵向?qū)Р恍?nbsp;, 那就試試lua吧 , 于是我找了一個lua的處理代碼 , 封裝成一個函數(shù) , 去掉這些特殊符號 。
代碼如下:
function QM plugin . filter _ spec _ charslocal ss = { }local k = 1while true doif k & gt;# s thenbreakendlocal c = string . byte(s , k)if not c thenbreakendif c & lt;192那么if(c & gt;= 48且c & lt= 57)或(c & gt= 65且c & lt= 90°)或(c & gt= 97和c & lt= 122)然后table.insert(ss , string . char(c))endk = k 1else if c & lt;224那么k = k ^ 2else if c & lt;240然后如果c & gt= 228且c & lt= 233那么local c1 = string.byte(s , k 1)local c2 = string.byte(s , k 2)如果c1和c2那么local a1 , a2 , a3 , a4 = 128 , 191 , 128 , 191如果c == 228那么a1 = 184elseif c == 233那么a2 , a4 = 1= a1和c1 & lt= a2和c2 & gt= a3和c2 & lt= a4然后table.insert(ss , string.char(c , c1 , C2))endendk = k 3else if c & lt;248那么k = k 4else if c & lt;252那么k = k 5else if c & lt;254然后k = k 6endend返回table . concat(ss)end
使用方法是將代碼放入文本中 , 保存為帶有l(wèi)ua后綴的文件 , 然后放入key的插件目錄中 。

按鍵精靈插件源碼 按鍵精靈把字符串處理為數(shù)值


trace print XM . filter _ spec _ chars(str)
這個插件有很多簡單的功能 , 就是去掉各種符號 , 保留中文、字母、數(shù)字 。
【按鍵精靈插件源碼 按鍵精靈把字符串處理為數(shù)值】=文本結(jié)束=
,

    推薦閱讀