1

代码的执行在 eval.in 上

sMessage = "<hjpotter92> +help|"
local _, _, sCmd, sData = sMessage:find( "%b<>%s[%+%-%*%/%!%#%?](%w+)%s?(.*)|" )
print( _, sData, sCmd  )

的输出print说 mysData是一个空字符串的值。

为什么这个值不是nil我基于为这种情况创建了一个完整的项目sDatanil我发现事实并非如此。


我已经通过使用这个块解决了这个问题

if sData:len() == 0 then 
    sData = nil 
end

所以,我不是在寻找解决方案来完成这项工作。我只是问,为什么它不是一个nil值?

4

1 回答 1

1

为什么应该这样nil
您正在成功匹配.*空字符串的模式。
nil表示“未找到匹配项”。
例子

于 2013-04-09T08:53:34.767 回答