Lua的string操作

简单的string函数:
string.len(s)        返回字符串s的长度
string.rep(s,n)      返回n次重复字符串s的串,如string.rep("a",5) 返回“aaaaa”。
string.lower(s)      将s中大写字母转换为小写
string.upper(s)
string.char(97)      返回数字97对应的字符
string.byte("abc")   返回第一个字符对应的数字97
string.byte("abc",2) 返回98
string.byte("abc",-1) 返回99

string.format("pi = %.4f",PI);  -->pi = 3.1415
d=5;m=11;y=2013;
string.format("%02d/%02m/%04y",d,m,y);  -->05/11/2013            02表示以固定的2位数字显示,不足的前面补0
tag,title = "h1"," title";
string.format("<%s>%s<%s>",tag,title,tag);

string.sub(str,i,j)  截取字符串str的从第i个字符到第j个字符之间的串。字符串索引从1开始。
string.sub(str,1,j)  返回从第1个字符开始长度为j的前缀。
string.sub(str,j,-1) 返回从第j个字符开始的后缀。 -1表示最后一个字符,-2表示倒数第二个字符。
string.sub(str,j)    等同于string.sub(str,j,-1),第三个参数默认为-1。
                        Lua的字符串是恒定不变的,字符串操作不会改变字符串的值,而是返回一个新的字符串。
-------------------------------------------------------------------------------------------

模式匹配函数:

1. 字符串查找:
string.find(目标串,模式串[,目标串搜索的起始位置(可选)]) 
用于在目标串中搜索指定模式的串。如果找到指定串返回他的开始和结束的索引,否则返回nil。

s = "hello world”
i,j = string.find(s,"hello")   结果:i=1,j=5
print(string.sub(s,i,j))       --> hello  
string.find(s,str,j)           第三个参数可选,标示目标串中搜索的起始位置。

Example: 用字符串s中所有的新行构造一个表。
local t = {};
local i = 0;
while true do
    i = string.find(s,"\n",i+1);
    if i == nil then
        break;
    end;
    table.insert(t,i);
end;     

2. 全局字符串替换:
string.gsub(目标串,模式串,替换串[,替换的次数(用于限制替换的范围)]) 
s = string.gsub("lua is cute","cute","great");          --> s = "lua is greate"
s = string.gsub("lua is cute,lucky","u","U",2);        --> s = "lUa is cUte,lucky"  替换2此匹配的串
_,count = string.gsub("lua is cute,lucky,"u","U")       --> count=3,count是替换的次数


3. string.gfind 全局字符串查找




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值