1

コードの実行はeval.in にあります。

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

の出力printは、 mysDataが空の文字列の値であると言います。

この値が ではないのはなぜnilですか? sDataそのような場合に備えてプロジェクト全体を作成しましたnilが、そうではないことがわかりました。


このブロックを使用して問題を解決しました

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

したがって、私はこれを機能させるための解決策を求めていません。なぜそれがnil値ではないのですか?

4

1 に答える 1

1

なぜそれが必要なのnilですか?空の文字列
とのパターンの一致が成功しています。「一致するものが見つかりませんでした」を意味します。.*
nil

于 2013-04-09T08:53:34.767 に答える