string - lua string.find 无法识别子字符串

标签 string lua substring

我使用 LUA 作为 Minecraft mod 的一部分 - 我不确定这会产生多大的影响 - 请参阅 openComputers。

代码尝试将给定字符串与通过迭代一系列包含具有名称的项的槽而获得的字符串进行匹配。

重要的代码块是:

    term.write("enter name")
    name=term.read()

返回一个字符串,例如“森林”不带引号。我还检查了数据类型。

然后,代码会解析元素 list ,寻找名称中带有“Forest”的元素。第一行的值(value)在某种程度上是特定于游戏的,但输出应该使这一点变得不重要。

    item = storage.getStackInSlot(sides.top,i)

这会返回一堆内容,然后用以下内容进行精炼:

    item_name = item.label

它返回“Bee Sample - Species: Forest”,我也检查过这绝对是一个字符串。

然后,代码对于匹配/查找应返回某些内容的行返回 nil != nil。我什至在 string.find 操作之前打印两个字符串。

    match = string.match(item_name, name, 1, true)
    print(match)

返回零。

我不知道为什么这会返回 false。我已经在解释器中分别测试了匹配和查找功能,例如:

    a=bic
    b=ambico
    string.find(b,a)

一切都很好。

抱歉,如果这是非常明显的,非常感谢

最佳答案

尝试从读取名称中删除所有尾随空格,如下所示:

name = term.read():gsub('%s+$', '')

关于string - lua string.find 无法识别子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53462995/

相关文章:

r - 如何在R中用相同的字符串替换多个字符串

java - 在 Java 中存储和访问字符串(通过使用数组)

python - 如何使用索引替换列值的前两个字母

Lua 匹配字符串中字符后的所有内容

Lua C API : Delete metatable created with luaL_newmetatable?

perl - 如何使用 Perl 增量打印字符串?

java - 在 Java 中,你可以使用负数和子字符串吗?

java - java中的正则表达式查找字符串是否采用尾随零的十进制数格式

c++ - 为什么将字符分配给 C++ 字符串会导致字符串长度为 0?

替换 lua 中的键的表值