string.gmatch查找两个不等号之间的字符串

时间:2012-01-02 12:21:20

标签: string lua expression

我使用的是Lua,已经使用了谷歌而且没有任何东西,无法找到方法来获取不等号之间的字符串(<>)。其他括号很容易获得,但这些不是。有可能吗?

目标:如何抓住"名称"从不平等标志之间的字符串?

字符串:< name&gt ;: Message

2 个答案:

答案 0 :(得分:3)

如果name不包含>,则<(.-)>有效。

答案 1 :(得分:0)

您可以使用(%b<>)模式捕获匹配的<>。然后使用该值,您只需使用string.sub来切断第一个和最后一个char:

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

正如您所看到的,这也会处理包含其他嵌入式<>符号

的字符串