Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Lua中,需要通过正则表达式基于反斜杠分隔字符串_Lua - Fatal编程技术网

在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基本上我需要字符串中的可执行文件名字符串和文件夹路径,在字符串中可以有多个反斜杠,这就是为什么通过正则表达式是最好的方法