代码的执行是在eval.in上
sMessage = "<hjpotter92> +help|"
local _, _, sCmd, sData = sMessage:find( "%b<>%s[%+%-%*%/%!%#%?](%w+)%s?(.*)|" )
print( _, sData, sCmd )print的输出表示my sData是一个空字符串的值。
为什么这个值不是nil**?**,我为这种情况创建了一个基于sData是nil的整个项目,而我发现事实并非如此。
我用这个块解决了麻烦
if sData:len() == 0 then
sData = nil
end所以,我不是在寻找解决办法来解决这个问题。我只是问,为什么它不是一个nil值?
发布于 2013-04-09 08:53:34
为什么应该是nil
您正在获得模式.*与空字符串的成功匹配。
nil的意思是“找不到匹配”。
示例
https://stackoverflow.com/questions/15892442
复制相似问题