Lua:return“{foo}{bar}”的内容
Lua: return content of "{foo}{bar}"
对于像 "{foo}{bar}"
这样的字符串有没有简单的
str = "{foo}{bar}"
first, second = str:gmatch(...)...
应该给 first="foo"
和 second="bar"
问题是foo
本身可以多一些括号,eg:
str = "{foo {baz}{bar}"
所以first = "foo {baz"
bar
部分只有字母数字字符,没有括号
您可以使用
first, second = str:match('{([^}]*)}%s*{([^}]*)}')
str.match
函数将查找并 return 第一个匹配项,并且由于有两个捕获组,因此将 return 根据有效匹配项编辑两个值。
该模式表示:
{
- 一个 {
字符
([^}]*)
- 第 1 组:除 }
之外的任何 0+ 个字符
}
- 一个 }
字符
%s*
- 0+ 个空格(不是必需的,但是额外的)
{([^}]*)}
- 同上,只是这里定义了一个Group 2。
对于像 "{foo}{bar}"
这样的字符串有没有简单的
str = "{foo}{bar}"
first, second = str:gmatch(...)...
应该给 first="foo"
和 second="bar"
问题是foo
本身可以多一些括号,eg:
str = "{foo {baz}{bar}"
所以first = "foo {baz"
bar
部分只有字母数字字符,没有括号
您可以使用
first, second = str:match('{([^}]*)}%s*{([^}]*)}')
str.match
函数将查找并 return 第一个匹配项,并且由于有两个捕获组,因此将 return 根据有效匹配项编辑两个值。
该模式表示:
{
- 一个{
字符([^}]*)
- 第 1 组:除}
之外的任何 0+ 个字符
}
- 一个}
字符%s*
- 0+ 个空格(不是必需的,但是额外的){([^}]*)}
- 同上,只是这里定义了一个Group 2。