在Lua中,需要通过正则表达式基于反斜杠分隔字符串
我有一根像在Lua中,需要通过正则表达式基于反斜杠分隔字符串,lua,Lua,我有一根像 文件:c:\test\xyz.exe 如何通过Lua中的Regex将上述字符串分成3部分 例如,第一部分是文件:, 字符串的第二部分应该是c:\test 字符串的第三部分应该是yz.exe请查看Lua手册中的字符串操作部分: 特别是match()和gmatch()。例如: s = "file:c:\\test\\xyz.exe" for first, second, third in string.gmatch(s, "(%a+):(.+)\\([%a%p]+)") do
文件:c:\test\xyz.exe
如何通过Lua中的Regex将上述字符串分成3部分
例如,第一部分是文件:
,
字符串的第二部分应该是c:\test
字符串的第三部分应该是
yz.exe
请查看Lua手册中的字符串操作部分:
特别是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中的转义字符,因此如果您想在字符串中包含一个,则必须对其进行转义:“\\”
给定的代码将适用于“文件:c:\test\xyz.exe”和“文件:c:\test\test3\a\abc.exe”输入字符串为文件:c:\test\xyz.exe通过Regexfile在LUA中预期有三个字符串:将在第一个字符串中c:\test\将在第二个字符串中string@vic:你为什么发垃圾评论?您可以编辑您的问题…这里的问题是我的输入字符串不断变化,就像文件:C:\test\test3\a\abc.exe基本上我需要字符串中的可执行文件名字符串和文件夹路径,在字符串中可以有多个反斜杠,这就是为什么通过正则表达式是最好的方法