使用string.gmatch函数查找两个不等号之间包含的字符串

我正在使用 Lua,已经使用了谷歌,但是找不到获取“<>”之间字符串的方式。其他括号很容易获取,但这些不是。这是可能做到的吗?

目标:如何从不等式符号之间的字符串中获取“name”?

字符串::Message

原文链接 https://stackoverflow.com/questions/8700745

点赞
stackoverflow用户513763
stackoverflow用户513763

你可以使用 (%b<>) 模式来捕获匹配的 <>。然后使用该值,可以简单地使用 string.sub 来剪切掉第一个和最后一个字符:

name,message=('< name<> > : Foo Bar!'):match('(%b<>)%s*:%s*(.*)')
name=name:sub(2,-2)
print(name,'sent message :',message)

正如你所看到的,这也处理了包含其他嵌入的 <> 符号的字符串。

2012-01-02 12:30:33
stackoverflow用户107090
stackoverflow用户107090

如果 name 不包含 >,那么 <(.-)> 生效。

2012-01-02 13:53:29