A. 我有一個字元串,要濾除其中的字母、標點、各種符號等,即只留下漢字。由於裡面的符號多樣,且是在中文狀
可以有兩種方法解決:
1、使用正則表達式
2、將字元串初始為空,遍歷要所給出的專字元串,如屬果字元的Ascii碼值為字母、標點、各種符號等所在的范圍,就在初始字元串加上空串(即「」),否則就加上該字元(即漢字),最後過濾留下的就全是中文了。
B. lua怎麼判斷字元串中含有漢字
a='hgsadg我們hdsfk'
l=strlen(a)
fori=1,ldo
asc2=strbyte(strsub(a,i,i))
ifasc2>127then
print('可能版是漢權字')
else
print(strchar(asc2))
end
end
C. lua中怎麼替換掉字元串中的$字元
a = "我們$a";
b = string.gsub(a, "\\$", "*");
print(b);
說明:
"\\$"
因為$是模式匹配的特殊字元, 所以需要在前面加 \
在字元串里, \ 是特殊字元, 所以是 \\
最後就是 "\\$"
D. lua中怎樣屏蔽掉一個字元串中的所有中文標點符號(%p只能實現過濾英文的標點符號)
string.gsub(s,'%,','')
半形的符號似乎也是特殊字元把 也加上轉義把
豆號問號什麼符號你就多加幾句把
E. lua腳本語言中 怎麼過濾中文下的特殊字元
你的問題寫的有些不太清楚
如果你是要替換的話
s = "這是一句話"
s = string.gsub(s,"一句","*")
這樣就能把 一句 這2個字替換成星號了 你是這個意思么
F. PHP下如何過濾掉除了漢字、數字和字母外的所有字元包括過濾掉特殊字元
$str=preg_replace('#[^x{4e00}-x{9fa5}A-Za-z0-9]#u','','你sd#^*)好12@3Ab+=45');
echo$str;//輸出'你sd好123Ab45'
G. 正則表達式怎麼匹配除過漢字、字母、數字外的所有特殊字元
^讓我好找啊,特別是漢字匹配,給你了:
^[^_][a-zA-Z0-9_\u4e00-\u9fa5][^_]$
如果是任專意多個字元可屬在外面加限定符,如:
^[^_][a-zA-Z0-9_\u4e00-\u9fa5]*[^_]$
H. lua中如何判斷字元串中包含中文字元
遍歷數組
對每個位元組使用string.byte()
發現有大於127的,就是漢字
I. lua中怎麼替換掉字元串中的$特殊字元
由於$是模式的特殊字元, 要使用普通的$字元, 則去掉它的特殊含義.
用 %$
J. lua中文字元串的捕獲。
local s = "學號|【20140036】教室:425,請按照教室學號對號內入座"
_, _, id =s:find("【(%d+)】")
_, _, clsrm = s:find("教室:容(%d+)")
print("學號:"..id.."\n".."教室:"..clsrm)
輸出:
學號:20140036
教室:425
基本就是用patterns進行匹配,()內部分通過find的額外返回值輸出
注意上述只是簡單演示,即學號教室都是數字的情況……如果有字母的話,教室可能需要通過逗號的位置或者具體字元數量等進行定位
另外lua不存在是否支持中文的問題,請先確認你的運行環境能正確顯示中文(比如在cmd下運行時確保cmd的codepage和lua文件的編碼保持一致