Lua模式匹配:匹配一个模式

3
我的问题是这样的。我有一个字符串,里面包含了类似于

这样的内容。
local mystring = "ASD_ASDDFS_SDF_ASDASD as8d76 na879yd"

我希望提取具有下划线的大写字母字符串的部分。通常这很容易,但现在这个字符串可能会随时改变。因此,该字符串可能是:

local mystring = "ASD_ASDDFS_SDF as8d76 na879yd"

或者

local mystring = "ASD_ASDDFS_SDF_YUIOY asaasd na879yd"

现在,字母始终以大写字母开头,并使用下划线连接。而我只想捕获这一部分。

我考虑采取以下方法:

local capitalpart = mystring:match("%u*%_%u*(%_%u*)+"))

所以它捕获一个下划线后面跟着大写字母,重复出现。但这没有起作用。
1个回答

4
您可以使用以下模式:
[%u_]+

1
需要注意的是,这将是唯一需要的模式。local capitalpart = mystring:match "^([%u_]+)" - hjpotter92

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接