我有一个字符串,它可以是任意字符。我想提取两个感叹号之间的部分或者在第一个感叹号之前或最后一个感叹号之后的部分:
str = "what)ever!when(ver!time!is!mo/ey"
function getStrPart(str,n) -- return a substring
return str:sub(...) or nil
end
getStrPart(str,0) -- return "what)ever" -- string until the first !
getStrPart(str,1) -- return "when(ver" -- between first and second !
getStrPart(str,2) -- return "time"
getStrPart(str,3) -- return "is"
getStrPart(str,4) -- return "mo/ey"
getStrPart(str,5) -- return nil -- for all n less 0 or > 4 (no of the !)
如果字符串不包含
!
。str = "whatever"
如果函数不能返回有效的值,则应返回nil。