2007-09-24 04:35:53 +00:00
|
|
|
|
print( string.find( 'alo alx 123 b\0o b\0o', '(..*) %1' ) )
|
|
|
|
|
|
print( string.find( 'aloALO', '%l*' ) )
|
|
|
|
|
|
print( string.find( ' \n isto <20> assim', '%S%S*' ) )
|
|
|
|
|
|
|
2007-09-18 05:17:09 +00:00
|
|
|
|
print( string.find( "", "" ) )
|
|
|
|
|
|
print( string.find( "ababaabbaba", "abb" ) )
|
|
|
|
|
|
print( string.find( "ababaabbaba", "abb", 7 ) )
|
|
|
|
|
|
|
|
|
|
|
|
print( string.match( "aabaa", "a*" ) )
|
|
|
|
|
|
print( string.match( "aabaa", "a*", 3 ) )
|
|
|
|
|
|
print( string.match( "aabaa", "a*b" ) )
|
|
|
|
|
|
print( string.match( "aabaa", "a*b", 3 ) )
|
|
|
|
|
|
|
|
|
|
|
|
print( string.match( "abbaaababaabaaabaa", "b(a*)b" ) )
|
|
|
|
|
|
|
|
|
|
|
|
print( string.match( "abbaaababaabaaabaa", "b(a*)()b" ) )
|
|
|
|
|
|
print( string.match( "abbaaababaabaaabaa", "b(a*)()b", 3 ) )
|
|
|
|
|
|
print( string.match( "abbaaababaabaaabaa", "b(a*)()b", 8 ) )
|
|
|
|
|
|
print( string.match( "abbaaababaabaaabaa", "b(a*)()b", 12 ) )
|
2007-09-19 04:44:31 +00:00
|
|
|
|
|
|
|
|
|
|
print( string.byte("hi", -3) )
|
|
|
|
|
|
|
2008-07-14 20:14:17 +00:00
|
|
|
|
print( string.gsub("ABC", "@(%x+)", function(s) return "|abcd" end) )
|
|
|
|
|
|
print( string.gsub("@123", "@(%x+)", function(s) return "|abcd" end) )
|
|
|
|
|
|
print( string.gsub("ABC@123", "@(%x+)", function(s) return "|abcd" end) )
|
|
|
|
|
|
print( string.gsub("ABC@123@def", "@(%x+)", function(s) return "|abcd" end) )
|
|
|
|
|
|
print( string.gsub("ABC@123@qrs@def@tuv", "@(%x+)", function(s) return "|abcd" end) )
|
|
|
|
|
|
print( string.gsub("ABC@123@qrs@def@tuv", "@(%x+)", function(s) return "@ab" end) )
|
|
|
|
|
|
|
2007-09-19 04:44:31 +00:00
|
|
|
|
print( tostring(1234567890123) )
|
|
|
|
|
|
print( tostring(1234567890124) )
|
|
|
|
|
|
print( tostring(1234567890125) )
|
2007-09-24 04:35:53 +00:00
|
|
|
|
|
|
|
|
|
|
function f1(s, p)
|
|
|
|
|
|
print(p)
|
|
|
|
|
|
p = string.gsub(p, "%%([0-9])", function (s) return "%" .. (s+1) end)
|
|
|
|
|
|
print(p)
|
|
|
|
|
|
p = string.gsub(p, "^(^?)", "%1()", 1)
|
|
|
|
|
|
print(p)
|
|
|
|
|
|
p = string.gsub(p, "($?)$", "()%1", 1)
|
|
|
|
|
|
print(p)
|
|
|
|
|
|
local t = {string.match(s, p)}
|
|
|
|
|
|
return string.sub(s, t[1], t[#t] - 1)
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
print( f1('alo alx 123 b\0o b\0o', '(..*) %1') )
|
|
|
|
|
|
|
|
|
|
|
|
local function badpat()
|
|
|
|
|
|
print( string.gsub( "alo", "(.)", "%2" ) )
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
print( pcall( badpat ) )
|
2007-11-19 23:06:26 +00:00
|
|
|
|
|
|
|
|
|
|
for k, v in string.gmatch("w=200&h=150", "(%w+)=(%w+)") do
|
|
|
|
|
|
print(k, v)
|
|
|
|
|
|
end
|
2007-12-13 01:03:02 +00:00
|
|
|
|
|
|
|
|
|
|
-- string.sub
|
|
|
|
|
|
function t(str)
|
|
|
|
|
|
local i = { 0, 1, 2, 8, -1 }
|
|
|
|
|
|
for ki,vi in ipairs(i) do
|
|
|
|
|
|
local s,v = pcall( string.sub, str, vi )
|
2007-12-13 01:04:08 +00:00
|
|
|
|
print( 'string.sub("'..str..'",'..tostring(vi)..')='..tostring(s)..',"'..tostring(v)..'"' )
|
2007-12-13 01:03:02 +00:00
|
|
|
|
local j = { 0, 1, 2, 4, 8, -1 }
|
|
|
|
|
|
for kj,vj in ipairs(j) do
|
|
|
|
|
|
local s,v = pcall( string.sub, str, vi, vj )
|
2007-12-13 01:04:08 +00:00
|
|
|
|
print( 'string.sub("'..str..'",'..tostring(vi)..','..tostring(vj)..')='..tostring(s)..',"'..tostring(v)..'"' )
|
2007-12-13 01:03:02 +00:00
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
t( 'abcdefghijklmn' )
|
|
|
|
|
|
t( 'abcdefg' )
|
|
|
|
|
|
t( 'abcd' )
|
|
|
|
|
|
t( 'abc' )
|
|
|
|
|
|
t( 'ab' )
|
|
|
|
|
|
t( 'a' )
|
|
|
|
|
|
t( '' )
|
2008-06-02 05:53:32 +00:00
|
|
|
|
|
|
|
|
|
|
print(string.len("Hello, world"))
|
|
|
|
|
|
print(#"Hello, world")
|
|
|
|
|
|
print(string.len("\0\0\0"))
|
|
|
|
|
|
print(#"\0\0\0")
|
|
|
|
|
|
print(string.len("\0\1\2\3"))
|
|
|
|
|
|
print(#"\0\1\2\3")
|
2008-07-23 14:11:56 +00:00
|
|
|
|
local s = "My JaCk-O-lAnTeRn CaSe TeXt"
|
2008-06-02 05:53:32 +00:00
|
|
|
|
print(s, string.len(s), #s)
|
2008-06-04 15:33:21 +00:00
|
|
|
|
|
2008-07-23 14:11:56 +00:00
|
|
|
|
local function pc(...)
|
|
|
|
|
|
local s,e = pcall(...)
|
|
|
|
|
|
return s and e or 'false-'..type(e)
|
|
|
|
|
|
end
|
2008-06-04 15:33:21 +00:00
|
|
|
|
local function strtests(name,func,...)
|
2008-07-23 14:11:56 +00:00
|
|
|
|
print(name, 'good', pc( func, ... ) )
|
|
|
|
|
|
print(name, 'empty', pc( func ) )
|
|
|
|
|
|
print(name, 'table', pc( func, {} ) )
|
|
|
|
|
|
print(name, 'nil', pc( func, nil ) )
|
2008-06-04 15:33:21 +00:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
strtests('lower', string.lower, s )
|
|
|
|
|
|
strtests('upper', string.upper, s )
|
|
|
|
|
|
strtests('reverse', string.reverse, s )
|
|
|
|
|
|
strtests('char', string.char, 92, 60, 61, 93 )
|
|
|
|
|
|
strtests('dump', string.dump, function() print('hello, world') end )
|
|
|
|
|
|
|