【问题标题】:How do I find a specific word (string) from a users input in lua如何从 lua 中的用户输入中找到特定的单词(字符串)
【发布时间】:2022-01-10 16:20:30
【问题描述】:

我现在一直在尝试查看用户输入的任何内容是否包含特定单词,例如(“谢谢”、“谢谢”、“谢谢”)等

我不知道如何才能找到用户输入是否包含特定的字符串单词,我也不太擅长 lua 编码,eep eep!

【问题讨论】:

    标签: lua


    【解决方案1】:

    也许这很有帮助,因为它可以在一次运行中匹配多次并返回匹配的频率。
    所以决定模式([tT]han%g+)匹配的出现次数是可能的。
    用于此的魔术字符串函数是:gsub()
    在 Lua Konsole 中键入的示例...

    > _VERSION
    Lua 5.4
    texts = setmetatable({}, {__call = function(self) if #self > 0 then return self[#self]:gsub('([tT]han%g+)','*%1*') end end, __index = {insert = table.insert}})
    > texts:insert([[Hello ...                                                                                
    
    My name is Thomas T. Thank
    I would like to thank you...
    Thanks in advance]])
    > texts()
    Hello ...
    
    My name is Thomas T. *Thank*
    I would like to *thank* you...
    *Thanks* in advance 3
    > do local txt, occ = texts() if occ > 0 then io.write(occ,' occurencies in...\n', txt, '\n...found.\n') end end
    3 occurencies in...
    Hello ...
    
    My name is Thomas T. *Thank*
    I would like to *thank* you...
    *Thanks* in advance
    ...found.
    

    ...gsub() 也是一个很好的翻译或查找和替换功能。

    【讨论】:

      【解决方案2】:

      Lua 参考手册来救援!

      https://www.lua.org/manual/5.4/manual.html#pdf-string.find

      string.find (s, pattern [, init [, plain]]) 在字符串 s 中查找 pattern 的第一个匹配项(参见 §6.4.1)。如果找到匹配项, 然后 find 返回此事件开始的 s 的索引,并且 结束;否则,它返回失败。第三个可选的数字参数 init 指定从哪里开始搜索;它的默认值为 1 和 可以是负数。作为第四个可选参数的 true 值 关闭模式匹配工具,因此该函数执行 普通的“查找子字符串”操作,模式中没有字符 被认为是魔法。

      如果模式有捕获,则在成功匹配中捕获 在两个索引之后也会返回值。

      https://www.lua.org/manual/5.4/manual.html#pdf-string.match

      string.match(s, pattern [, init]) 在字符串 s 中查找模式的第一个匹配项(参见 §6.4.1)。如果找到一个,则匹配 从模式返回捕获;否则返回失败。如果 模式指定不捕获,然后返回整个匹配。一种 第三,可选的数字参数 init 指定从哪里开始 搜索;它的默认值为 1,可以为负数。

      例子:

      local input = "love is in the air"
      print(input:find("air"))
      print(input:match("air"))
      

      input:find("air") 基本上是 input:match("()ai()r") 的缩写

      编辑: 如果您不知道如何获取用户输入:

      https://www.lua.org/manual/5.4/manual.html#pdf-io.read

      【讨论】:

      • 我不想知道如何在字符串变量中找到某个单词,我想查找客户端为输入计算机/代码而编写的内容,并查看客户端输入是否包含特定单词.
      • 抱歉,我无法理解您的评论。你问如何在用户输入中找到一个特定的词。我向您展示了如何查找单词air 作为示例。 Lua 中的任何文本都以字符串形式出现。您的客户的意见也是如此。因此在用户输入中查找某些内容是以完全相同的方式完成的。如果您不知道如何获取用户输入,那么您可能应该在帖子中提到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 2017-04-26
      • 1970-01-01
      • 2012-07-13
      • 2019-03-20
      • 1970-01-01
      相关资源
      最近更新 更多