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

时间:2019-01-31 06:02:24

标签: regex string lua match

当在字符串的开头找到3个准确的单词中的1个时,我需要一个Lua模式进行匹配,但是我只能在线找到解决方案以显示如何与字符类型进行匹配,即它以数字开头还是标点符号。

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

  • app-form-control
  • showExtraField
  • For someone else
  • app-form-control

我们可以假设第一个单词是“玩家”,“目标”或“敌人”,因此如果在字符串中仅找到其中一个,我可以创建一个模式将它们组合在一起并进行匹配吗?文本的其余部分在“。”之后。可以是任何东西。

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

"player.position"

第一部分可以匹配方括号之间包含的任何字符序列,例如,与此模式一起使用的"player.style"将返回"target.width",因为"enemy.height"local pattern = "[player target enemy]*%..+"; ,在该模式的方括号之间可以找到"bannana_target_apple.position""apple.position"

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

在字符串的开头找到3个准确单词中的1个时匹配的lua模式:

if ({player=0, target=0, enemy=0})[your_string:match"^(%w+)%."] then 
   ... 
end