zoukankan      html  css  js  c++  java
  • 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"
  • 相关阅读:
    MySQL数据库之索引
    python面向对象编程
    linux端口占用
    lintcode
    java基础
    lintcode
    linux 常用命令
    Docker & Kubernates
    angular preparation
    java 命令行
  • 原文地址:https://www.cnblogs.com/xiaoleiel/p/8295744.html
Copyright © 2011-2022 走看看