1

Lua では、次のパターンを使用して、大きな XML 文字列から最後に出現した XML タグを解析しています。

local firstPattern = "<tag>(.-)</tag>"

次に、次のコードを使用してすべての出現箇所を見つけました。

local lastMatch
for match in string.gmatch(xmlString, firstPattern) do
  lastMatch = match
end

あまり速くないように見えたので、貪欲な文字をパターンの先頭に追加してみました。

local secondPattern = ".*<tag>(.-)</tag>"
lastMatch = string.match(xmlString, secondPattern)

解析の前​​後に印刷os.clock()すると、2 番目のパターンの方がわずかに高速であることがわかりましたが、最後に出現した xml タグに一致するより良いパターンがあると考えなければなりません。

3 番目のパターンも試しましたが、xml タグの最初のインスタンスしか返されません。

local thirdPattern = "<tag>(.-)</tag>.-$"
local firstMatch = string.match(xmlString, thirdPattern)
4

0 に答える 0