我有一个类似的字符串
file:c:\test\xyz.exe
如何通过Lua中的Regex将上述字符串分成3个部分?
例如,第一部分是file:
,
字符串的第二部分应为c:\test
字符串的第三部分应为yz.exe
。
答案 0 :(得分:2)
查看Lua手册的字符串操作部分:http://www.lua.org/manual/5.1/manual.html#5.4
特别是match()和gmatch()。例如:
s = "file:c:\\test\\xyz.exe"
for first, second, third in string.gmatch(s, "(%a+):(.+)\\([%a%p]+)") do
print(first)
print(second)
print(third)
end
要在第一个和第三个位置允许使用字母数字字符,请将%a
替换为%w
。所有其他可能的模式在链接手册章节的末尾引用。
您必须将输入字符串中的每个'\'加倍,否则模式匹配将不起作用。反斜杠是Lua中的一个转义符,所以如果你想在你的字符串中有一个,你必须逃避它:"\\"
给定代码适用于“file:c:\ test \ xyz.exe”和“file:C:\ test \ test3 \ a \ abc.exe”