Lua中缺少`|`运算符,如何检查字符串是否包含特定字符集?
- 内容介绍
- 文章标签
- 相关推荐
本文共计416个文字,预计阅读时间需要2分钟。
我有一以下形式的字符串:cake!apple!apple!cake!juice!apple!cake!juice!cake! + 换句话说,这些字符串由三个子字符串组成:cake!、apple!、juice!。并且包含果汁!+ 因此,我需要验证这些字符串。因为此,使用正则表达式“
我有以下形式的字符串:cake!apple! apple! cake!juice!apple!cake! juice!cake!
换句话说,这些字符串由三个子字符串“cake!”,“apple!”组成.和“果汁!”.
我需要验证这些字符串.因此,使用正则表达式执行此操作的方法是:
/^(apple!|juice!|cake!)*$/
但Lua的模式没有|运算符,所以看似不能这样做.
如何在Lua中验证我的字符串?
(我不关心字符串的内容:我只关心它们是否符合(验证).)
我知道编写代码来做到这一点,但我想不出一个简短的方法来做到这一点.我正在寻找一个简短的解决方案.我想知道是否有一个我不知道的优雅解决方案.有任何想法吗?
if str:gsub("%w+!", {["apple!"]="", ["juice!"]="", ["cake!"]=""}) == "" then --do something end
此解决方案使用表作为string.gsub的第二个参数.由于模式都匹配%w,表将第二次验证,只有真正的三个模式被替换为空字符串.如果在所有替换后,字符串变空,则匹配成功.
使用辅助表变量可以使其更清晰:
local t = {["apple!"]="", ["juice!"]="", ["cake!"]=""} if str:gsub("%w+!", t) == "" then --do something end
本文共计416个文字,预计阅读时间需要2分钟。
我有一以下形式的字符串:cake!apple!apple!cake!juice!apple!cake!juice!cake! + 换句话说,这些字符串由三个子字符串组成:cake!、apple!、juice!。并且包含果汁!+ 因此,我需要验证这些字符串。因为此,使用正则表达式“
我有以下形式的字符串:cake!apple! apple! cake!juice!apple!cake! juice!cake!
换句话说,这些字符串由三个子字符串“cake!”,“apple!”组成.和“果汁!”.
我需要验证这些字符串.因此,使用正则表达式执行此操作的方法是:
/^(apple!|juice!|cake!)*$/
但Lua的模式没有|运算符,所以看似不能这样做.
如何在Lua中验证我的字符串?
(我不关心字符串的内容:我只关心它们是否符合(验证).)
我知道编写代码来做到这一点,但我想不出一个简短的方法来做到这一点.我正在寻找一个简短的解决方案.我想知道是否有一个我不知道的优雅解决方案.有任何想法吗?
if str:gsub("%w+!", {["apple!"]="", ["juice!"]="", ["cake!"]=""}) == "" then --do something end
此解决方案使用表作为string.gsub的第二个参数.由于模式都匹配%w,表将第二次验证,只有真正的三个模式被替换为空字符串.如果在所有替换后,字符串变空,则匹配成功.
使用辅助表变量可以使其更清晰:
local t = {["apple!"]="", ["juice!"]="", ["cake!"]=""} if str:gsub("%w+!", t) == "" then --do something end

