为什么 string.match/find 找不到所有大写字母?

我试图使用 Lua 在字符串中找到所有大写字母。目前,我有以下代码:

local str = "CatCook"
print(string.find(str,"%u+"))

问题在于,尽管我使用的是 +,但函数只能找到第一个大写字母。

输出结果为:1 1

我在这里做错了什么?

点赞
用户734069
用户734069

它确切地做了你所要求的。string.find在给定的字符串中找到_第一个匹配项_。第一个匹配模式\u+的字符序列是第一个字符。模式匹配匹配连续的字符序列。

如果您想提取与模式匹配的每个字符序列,您需要使用string.gmatch

2020-10-23 17:12:10