Lua string.match - 匹配字符串中的可选单词

我需要一个 Lua 模式匹配器,能够在字符串开头找到3个单词中的1个但是我只能在网上找到如何匹配字符类型的解决方案,即它是否以数字或标点字符开头。

例如,以下字符串应该匹配模式:

  • "player.position"
  • "player.style"
  • "target.width"
  • "enemy.height"

我们可以假设第一个单词将是 "player","target" 或 "enemy" 中的一个,因此我可以创建一个将它们分组在一起并在字符串中仅找到其中一个时匹配的模式吗?点号后面的文本可以是任何内容。

我想出了这个模式,但它有很多问题:

local pattern = "[player target enemy]*%..+";

第一部分可以匹配方括号中包含的任何字符序列,因此例如使用此模式的 "bannana_target_apple.position" 将返回 "apple.position",因为方括号中找到了 "a""p""l""e"

谢谢您提供任何帮助。

点赞
用户6834680
用户6834680

Lua 模式匹配,当字符串的开头有三个完全匹配的单词之一时进行匹配:

如果 ({player=0, target=0, enemy=0})[your_string:match"^(%w+)%."] ,那么...
end
2019-01-31 08:14:03