You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua实现字符串中GSM 3.38扩展字符的多出现次数统计

统计GSM 3.38扩展字符出现次数的Lua实现方法

方法一:利用Lua模式匹配(gsub批量统计)

Lua的gsub支持模式匹配,我们可以把所有需要统计的GSM 3.38扩展字符放到字符集[]中,注意对模式元字符进行转义(比如[、]、^、{、}需要加%,\在字符串中要写成\\),直接批量替换并统计次数:

local test_str = "abc€|€]/{def"
-- 构造匹配所有目标字符的模式
local gsm_ext_pattern = "[€%[%]%^%{%|%}~\\]"
local _, total_count = test_str:gsub(gsm_ext_pattern, "")
print(total_count) -- 输出6,符合示例预期

方法二:遍历字符逐一判断

如果需要更灵活的逻辑,可以遍历字符串的每个字符,判断是否属于目标字符集合:

local test_str = "abc€|€]/{def"
-- 用表存储目标字符,便于快速查找
local target_chars = {
    ["€"] = true, ["["] = true, ["\\"] = true,
    ["]"] = true, ["^"] = true, ["{"] = true,
    ["|"] = true, ["}"] = true, ["~"] = true
}
local count = 0
-- 遍历字符串每个字符
for char in test_str:gmatch(".") do
    if target_chars[char] then
        count = count + 1
    end
end
print(count) -- 输出6

两种方法对比

  • 方法一更简洁高效,适合单纯的批量统计场景;
  • 方法二更灵活,可在判断时加入额外逻辑(比如区分字符出现的位置等)。

内容的提问来源于stack exchange,提问作者Lucas Rey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 13:42:38