查找与Lua中的模式匹配的第一个字符串(XML模式匹配)

我目前正在使用以下代码来解析Xml文件的一部分(我首先将整个文件读入一个字符串)。
for xmlMatch in xmlString:gmatch("<MyXmlElement.*</MyXmlElement>") do
    -- Do something.
end
我遇到的问题是for循环只执行一次,因为gmatch函数只返回一个字符串,该字符串从MyXmlElement的第一个实例开始,并在MyXmlElement的最后一个实例的闭包处结束。我怎样才能解析字符串,以便在首次找到字符串
"</MyXmlElement>"
时匹配模式(而不仅仅是最后一种情况)?     
已邀请:
这里有三个错误: gmatch从字符串返回捕获的子字符串,因此您需要使用()围绕要在循环中使用的内容 为了匹配尽可能少的字符数,你应该使用
.-
作为模式直到第一个可能的
</MyXmlElement>
你需要变量后的变量(但我猜这只是一个错字) 所以一起:
for att,cont in XmlString:gmatch'<MyXmlElement%s*(.-)>(.-)</MyXmlElement>' do
    -- something
end
应该做的伎俩。     

要回复问题请先登录注册