I have a String li开发者_C百科ke
file:c:\test\xyz.exe
how can I separate the above string in 3 parts through Regex in Lua?
For the example, the first part would be file:
,
the second part of string should be c:\test
and the third part of string should be yz.exe
.
have a look at the String manipulation part of the Lua manual : http://www.lua.org/manual/5.1/manual.html#5.4
In particular match() and gmatch(). For example :
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
To allow alphanumerical character in the first and third place, replace %a
with %w
. All others possible pattern are referenced at the end of the linked manual chapter.
You must double each '\' in your input string, otherwise pattern matching won't work. Backslash is an escaping character in Lua, so if you want to have one in your string, you must escape it : "\\"
The given code will work for "file:c:\test\xyz.exe" and "file:C:\test\test3\a\abc.exe"
精彩评论