查找字符串 w/o 的子字符串,知道字符串的长度
Find substring of string w/o knowing the length of string
我有一个字符串 x: x = "{abc}{def}{ghi}"
我需要打印第二个 {
和第二个 }
之间的字符串,在本例中为 def
。在不知道字符串长度的情况下如何做到这一点?例如,字符串 x 也可以是 {abcde}{fghij}{klmno}"
这是模式匹配有用的地方:
local x = "{abc}{def}{ghi}"
local result = x:match(".-{.-}.-{(.-)}")
print(result)
.-
匹配零个或多个字符,非贪婪。整个模式 .-{.-}.-{(.-)}
捕获了第二个 {
和第二个 }
.
之间的内容
也试试 x:match(".-}{(.-)}")
,这样更简单。
我会以不同的方式处理它:
local i, x, result = 1, "{abc}{def}{ghi}"
for w in x:gmatch '{(.-)}' do
if i == 2 then
result = w
break
else
i = i + 1
end
end
print( result )
我有一个字符串 x: x = "{abc}{def}{ghi}"
我需要打印第二个 {
和第二个 }
之间的字符串,在本例中为 def
。在不知道字符串长度的情况下如何做到这一点?例如,字符串 x 也可以是 {abcde}{fghij}{klmno}"
这是模式匹配有用的地方:
local x = "{abc}{def}{ghi}"
local result = x:match(".-{.-}.-{(.-)}")
print(result)
.-
匹配零个或多个字符,非贪婪。整个模式 .-{.-}.-{(.-)}
捕获了第二个 {
和第二个 }
.
也试试 x:match(".-}{(.-)}")
,这样更简单。
我会以不同的方式处理它:
local i, x, result = 1, "{abc}{def}{ghi}"
for w in x:gmatch '{(.-)}' do
if i == 2 then
result = w
break
else
i = i + 1
end
end
print( result )