lua——string之string.gsub

translated from the lua document

string.gsub用法:

函数原型:string.gsub( s, pattern, rep1[, n] )

函数功能:返回一个和pattern匹配,并且用rep1替换的副本。rep1可以是string、table和functin。

                  第二个返回值n是代表匹配的个数。

 

rep1说明:

如果rep1是string类型,那么rep1用于替换匹配的字符串。%代表转义字符,rep1中%n里面,

n的范围是1~9,代表第n个捕获的子串(看下面的例子)。%0代表所有的匹配,%%代表单个%。

 

如果rep1是表,设表为t,则匹配的项会用t[match]来代替,match是匹配的项。如果没有匹配,

则原串返回。

 

如果rep1是函数,那么,所有匹配的子串会分别作为函数的参数,如果匹配n次,则调用函数n次。

 

如果表或者函数的返回值是string或者number,那么它会替换匹配的子串;

如果返回值是false或者nil,那么不会作任务替换返回值是和原来的string一样。

 

下面是一些例子:

     x = string.gsub("hello world", "(%w+)", "%1 %1")
     --> x="hello hello world world"
     
     x = string.gsub("hello world", "%w+", "%0 %0", 1)
     --> x="hello hello world"
     
     x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1")
     --> x="world hello Lua from"
     
     x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv)
     --> x="home = /home/roberto, user = roberto"
     
     x = string.gsub("4+5 = $return 4+5$", "%$(.-)%$", function (s)
           return loadstring(s)()
         end)
     --> x="4+5 = 9"
     
     local t = {name="lua", version="5.1"}
     x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t)
     --> x="lua-5.1.tar.gz"
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值