我尝试在HTML-Body中找到一个字符串,字符串看起来像var version="1,1,0,0";
,我只想在双引号之间提取内容。我用
local version = string.match(response.body, ".version.")
return version
答案 0 :(得分:2)
您可以使用var%s+version="([^"]+)
模式与string.match
仅输出捕获的文本(即与([^"]+)
匹配的文本)(请参阅此Lua patterns tutorial):
s = [[var version="1,1,0,0";]]
res = string.match(s, [[var%s+version="([^"]+)]])
print(res)
请参阅Lua demo。
<强>详情:
var
- 文字var
文字%s+
- 1+空格version="
- 文字version="
文字([^"]+)
- 与"
以外的1个字符匹配的捕获组。如果您要指定version="..."
中只能包含数字和逗号,请使用var%s+version="([%d,]+)
模式(请参阅demo),其中[%d,]+
匹配1位数或逗号
答案 1 :(得分:0)
--> parsing first single quoted string only.
str1 = [[var version='1,1,0,0';]]
res1 = string.match(str1, "%b''")
res1 = string.gsub(res1, "'", '')
print(res1)
--> parsing first double quoted string only.
str2 = [[var version="1,1,0,0";]]
res2 = string.match(str2, '%b""')
res2 = string.gsub(res2, '"', "")
print(res2)
--> parsing all single quoted strings.
line1 = "major_ver='1', minor_ver='1.1'"
for chunk in string.gmatch(line1, "'(.-)'") do print(chunk) end
--> parsing all double quoted strings.
line2 = 'major_ver="2", minor_ver="2.2"'
for chunk in string.gmatch(line2, '"(.-)"') do print(chunk) end
line3 = [[major_ver="3", minor_ver="3.3"]]
for chunk in string.gmatch(line3, [["(.-)"]]) do print(chunk) end
点击Lua demo以获得实时结果。