--[[ Lua 字符串    字符串或串(String)是由数字、字母、下划线组成的一串字符    Lua语言中字符串可以使用以下三种方式来表示 ]]     -- 单引号的一串字符     -- 双引号的一串字符     -- [[ 与 ]] 之间的一串字符string1 = "Lua"print("string1=",string1)string2 = 'hello'print("string2=",string2)string3 = [["Hello World"]]print("string3=",string3)-- string1=    Lua-- string2=    hello-- string3=    "Hello World"--[[ 转义字符用于表示不能直接显示的字符,比如后退键,回车键,等。 在字符串转换双引号可以使用 \" 下面是所有转义字符和所对应的意义 转义字符        意义                                  ASCII码值(十进制) \a             响铃(BEL)                             007 \b             退格(BS),将当前位置移到前一列            008 \f             换页(FF),将当前位置移到下一页开头         012 \n             换行(LF),将当前位置移到下一行开头         010 \r             回车(CR),将当前位置移到本行开头           013 \t             水平制表(HT),(跳到下一个TAB位置)          009 \v             垂直制表(VT)                           011 \\             代表一个反斜杠字符 \                     092 \'             代表一个单引号(撇号)字符                  039 \"             代表一个双引号字符                        034 \0             空字符(NULL)                            000 \ddd           1到3位八进制数所代表的任意字符             三位八进制 \xhh           1到2位十六进制所代表的任意字符             二位十六进制]]print("\n\n")-- ***************************************************************************--[[ 字符串操作  Lua提供了很多的方法来支持字符串的操作]]-- string.upper(argument)--     字符串全部转换为大写字母print(string.upper("hello"))  -- HELLO-- string.lower(argument)--     字符串全都转换为小写字母print(string.lower("HellO")) -- hello-- string.gsub(mainString,findString,replaceString,num)--     在字符串中替换--      mainString为要操作的字符串,findString为被替换的字符串--      replaceString要替换的字符,num替换次数(可以忽略,则全部替换)print(string.gsub("HelloWorld","l","#",2)) -- He##oWorld    2-- string.find(str,substr,[init, [end]])--     在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体的位置,不存在则返回nilprint(string.find("Hello Lua, Hello World Lua","Lua",2))   -- 7  9print(string.find("Hello Lua, Hello World Lua","Lua",10))  -- 24  26-- string.reverse(arg)--     字符串反转print(string.reverse("HelloWorld"))  -- dlroWolleH-- ***************************************************************************-- string.format(...)--     返回一个类似printf的格式化字符串local st = string.format("the value is:%d",520)print(st)  -- the value is:520-- 字符串格式化 详细介绍--[[    Lua提供了string.format()函数来生成具有特定格式的字符串,函数的第一个参数时格式,     之后是对应格式中每个代号的各种数据。由于格式字符串的存在,使得产生的长字符串可读性大大提高了。     格式字符串 转义码     %c     接受一个数字,并将其转换为ASCII码表中对应的字符     %d     接受一个数字并将其转化为有符号的整数格式     %o     接受一个数字并将其转化为八进制数格式     %u     接受一个数字并将其转化为无符号整数格式     %x     接受一个数字并将其转化为十六进制数格式,使用小写字母     %X     接受一个数字并将其转化为十六进制数格式,使用大写字母     %e     接受一个数字并将其转化为科学计数法格式,使用小写字母e     %E     接受一个数字并将其转化为科学计数法格式,使用大写字母E     %f     接受一个数字并将其转化为浮点数格式     %g(%G) 接受一个数字并将其转化为%e(%E,对应%G)及%f中较短的一种格式     %q     接受一个字符串并将其转化为可安全被Lua编译器读入的格式     %s     接受一个字符串并按照给定的参数格式化该字符串     为进一步细化格式,可以在%后添加参数,参数将以如下顺序读入:     (1)符号:一个+符号表示其后的数字转义符将让正数显示正好,默认情况下只有负数显示符号     (2)占位符:一个0,在后面制定了字符串宽度时占位用,不填时默认占位符是空格     (3)对齐标识:在指定了字符串宽度时,默认为右对齐,增加-好可以改变为左对齐     (4)宽度数值     (5)小数位数/字符串裁切:在宽度数值后增加的小数部分n,若后接f(浮点数转义符,如%6.3f)则        设定该浮点数的小数只保留n位,若后接s(字符串转义符,如%5.3s)则设定该字符串值显示前n位]]do     local string1 = "Lua"    local string2 = "HelloWorld"    local number1  =10    local number2 = 20    print(string.format("%s %s",string1,string2)) -- Lua HelloWorld    local day = 1    local month =1    local year = 2020    print(string.format("%03d/%02d/%02d",year,month,day)) -- 2020/01/01    print(string.format("%.4f",1/3))  -- 0.3333    print(string.format("%5.3s",string2)) --  Hel  注意,这前面有两个空格      print(string.format("%1.3s",string2)) --Helendprint("\n")doprint(string.format("%c", 83))                --  Sprint(string.format("%+d", 17.0))             --  +17print(string.format("%05d", 17))                --  00017print(string.format("%o", 17))                --  21print(string.format("%u", 3))                --  3print(string.format("%x", 13))                --  dprint(string.format("%X", 13))                --  Dprint(string.format("%e", 1000))                --  1.000000e+03print(string.format("%E", 1000))                --  1.000000E+03print(string.format("%6.3f", 13))                --  13.000print(string.format("%q", "One\nTwo") )        --  "One\                                               --  Two"print(string.format("%s", "monkey"))           --  monkeyprint(string.format("%10s", "monkey"))        --      monkeyprint(string.format("%5.3s", "monkey"))        --    monendprint("\n\n")-- ***************************************************************************-- string.char(arg) 和 string.byte(arg[, int])--     char将整型数字转成字符并连接,byte转换字符为整数值(可以指定某个字符,默认第一个字符)-- 字符与整数相互转换local ss = string.char(65,66,67,68)print(ss) -- ABCDlocal num = string.byte("ABCD",2)local num2 = string.byte("ABCD")local num3 = string.byte("ABCD",4)print("num=",num,"num2=",num2,"num3=",num3) -- num= 66  num2=   65  num3=   68-- 转换第一个字符print(string.byte("HelloLua"))  -- 72-- 转换第三个字符print(string.byte("HelloLua",3)) -- 108-- 转换末尾第一个字符    print(string.byte("HelloLua",-1)) -- 97-- 转换第二个字符  print(string.byte("HelloLua",2))  -- 101-- 转换末尾第二个字符print(string.byte("HelloLua",-2)) -- 117-- 整数ASCII码转换为字符print(string.char(97))  -- a-- ***************************************************************************-- string.len(arg)--     计算字符串的长度local str = "Hello"local strlen = string.len(str)print("str=",str,"len=",strlen) -- str= Hello   len=    5-- string.rep(string,n)--     返回字符串string的n个拷贝local tmpstr = string.rep("abcd",2)print(tmpstr)  -- abcdabcdtmpstr = string.rep("HelloWorld ",10)print(tmpstr)-- HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld -- ***************************************************************************-- .. --     连接两个字符串local he = "hello "local wo = "world"local hewo = he .. woprint(string.format("he=%s wo=%s hewo=%s",he,wo,hewo))-- he=hello  wo=world hewo=hello worldprint("\n")-- ***************************************************************************-- string.gmatch(str,pattern)--     返回一个迭代器函数,每一次调用这个函数,返回一个在字符串str找到的下一个符合pattern描述的字串。--       如果参数pattern描述的字符串没有找到,迭代器函数返回nilfor world in string.gmatch("Hello Lua Hello World","%a+") do    print(world)-- Hello-- Lua-- Hello-- Worldendprint("\n\n")-- ***************************************************************************-- string.match(str,pattern,init)--     string.match()只寻找源字符串str中的第一个配对,参数init可选,指定搜寻过程的起点,默认为1--     在成功配对时,函数将返回配对表达式中的所有捕获结果,如果没有设置捕获标记,则返回整个配对字符串,当没有成功配对时,返回nillocal match_string = string.match("Sorry! I have 2 questions for you.","%d+ %a+")print(match_string) -- 2 questionsprint("\n")print(string.format("%d %q", string.match("I have 2 questions for you.", "(%d+) (%a+)")))-- 2 "questions"print("\n\n")-- ***************************************************************************--[[ 字符串截取    字符串截取使用sub()方法    string.sub()用于截取字符串    string.sub(s, i [, j])    参数说明:     s:要截取的字符串     i:截取开始位置     j:截取结束位置,默认为-1,最后一个字符 来,看看实例]]do    local sourcestr = "prefix--brookzhyy--suffix"    print("原始字符串:",string.format("%q",sourcestr))    -- 原始字符串:   "prefix--brookzhyy--suffix"    -- 截取部分,从第4个到第10个    local f_sub = string.sub(sourcestr,4,10)    print("截取4-10个字符:",string.format("%q",f_sub))    -- 截取1-10个字符:   "fix--br"    -- 截取部分,从第1个到第8个    local s_sub = string.sub(sourcestr,1,8)    print("截取第1-8个字符:",string.format("%q",s_sub))    -- 截取第1-8个字符:   "prefix--"    -- 记得取最后10个    local t_sub = string.sub(sourcestr,-10)    print("截取最后10个字符:",string.format("%q",t_sub))    -- 截取最后10个字符:   "yy--suffix"    -- 索引越界,输出原始字符串    local f_sub = string.sub(sourcestr,-100)    print("截取 索引越界,返回原是字符:",string.format("%q",f_sub))    -- 截取 索引越界,返回原是字符:  "prefix--brookzhyy--suffix"endprint("\n\n")-- ***************************************************************************-- ***************************************************************************-- 匹配模式--[[    匹配模式直接用常规的字符串来描述。用于模式匹配的函数:     string.find   string.gmatch  string.gsub  string.match    在模式串中使用字符类     字符类指可以匹配一个特定字符集合内任何字符的模式项。比如:字符类 %d 匹配任何数字,      所以可以使用模式串 %d%d%d%d/%d%d/%d%d 搜索 yyyy/mm/dd格式的日期 不多说,直接上例子]]do    local str = "Deadline is 2020/08/25. And that day is Chinese Valentine's Day."    local date = "%d%d%d%d/%d%d/%d%d"    print(string.sub(str,string.find(str,date))) -- 2020/08/25end--[[ Lua支持的所有字符类    单个字符(除了 ^$()%.[]*+-?外):与该字符自身配对    .(点)      与任何字符配对    %a         与任意字母配对    %c          与任何控制符配对(\n等)    %d          与任意数字配对    %l          与任意小谢字母配对    %p          与任意标点(punctuation)配对    %s          与空白字符配对    %u          与任意大写字母配对    %w          与任意字母/数字配对    %x          与任意十六进制数配对    %z          与任意代表0的字符配对    %x(此处x是非字母非数字字符):与字符x配对,主要用来处理表达式中有功能多字符(^$()%.[]*+-?)的配对问题      例如:%% 与 % 配对    [数个字符类]:与任何[]中包含的字符类配对,例如:[%w_]与任何字母/数字,或下划线符号_配对    [^数个字符类]:与任何不包含在[]中的字符类配对,例如:[^%s]与任何非空白字符配对    当上述的字符类用大些书写时,表示与非此字符的任何字符配对,如,%S表示与任何非空白字符配对,例如 %A 与非字母的字符配对]]print(string.gsub("hello, up-down!", "%A","."))-- hello..up.down.   4-- 解释下: %A 配对任何非字母字符,因此,配对到了 , -! 四个,然后把它们替换为.-- 数字4不是字符串的一部分,它是gsub返回的第二个结果,代表发生替换的次数-- 在模式匹配中有一些特殊字符,它们有特殊的意义,Lua中的特殊字符如下-- ( ) . % + - * ? [ ^ $-- % 用作特舒符号的转义字符,因此 %. 匹配点.   %% 匹配字符百分号% --  转义字符%不仅可以用来转义特殊字符,还可以用于所有的非字母的字符--[[ 模式条目可以是    单个字符类匹配该类别中的任意单个字符    单个字符类跟一个*,将匹配零个或多个该类的字符,这个条目总是匹配尽可能长的串    单个字符类跟一个+,将匹配一个或多个该类的字符,这个条目总是匹配尽可能长的串    单个字符类跟一个-,将匹配零个或多个该类的字符,和*不同,这个条目总是匹配尽可能短的串    单个字符类跟一个?,将匹配零个或一个该类的字符,只要有可能,他会匹配一个    %n,这里的n可以从1到9,这个条目匹配一个等于n号捕获物(后面有描述)的字串    %bxy,这里的x和y是两个明确的字符:这个条目匹配以x开始y结束,且其中x和y保持平衡的字符串,      意思是,如果从左到右读这个字符串,对每次读到一个x就+1,读到一个y就-1,最终结束处的那个y是第一个读到0的y。       举个例子:条目%b()可以匹配到括号品哼到表达式    %f[set],指边境模式,这个条目会匹配到一个位于set内某个字符之前到一个空串,且这个位置和前一个字符不属于set。        集合set到含义如前面所描述,匹配出的那个空串之开始和结束点点计算就看成该处有个字符\0一样。    模式:        模式,指一个模式条目序列。在模式最前面加上符号^将锚定从字符串的开始处做匹配。        在模式最后面加上符号$将使匹配过程锚定到字符串的结尾。如果^和$同时出现在其他位置,它们均没有特殊含义,只表示自身。    捕获:        模式可以在内部用小括号括起一个子模式:这些子模式被称为 捕获物。当匹配成功时,由 捕获物匹配到的字符串的字串被保存起来用于未来的用途,         捕获物以它们左括号的次序来编号。例如,对于模式 (a*(.)%w(%s*)) 字符串中匹配到 a*(.)%w(%s) 的部分保存在第一个捕获物中(因此编号是1)          由 . 匹配到的字符是2好捕获物,匹配到 %s* 的那部分是3号        作为一个特例,空的捕获()将捕获到当前字符串的位置(它是一个数字)。         例如:如果将模式 ()aa() 作用到字符串 flaaap上,将产生两个捕获物:3和5]]

扫码关注一下呗~

c++string替换指定位置字符_Lua 字符串相关推荐

  1. c++string替换指定位置字符_Excel数据分析:如何替换字符串中的指定字符?

    数据分析预处理中,经常遇到这样的问题:现有字符串中,如何替换指定的部分字符,例如有大量电话号码,现需要将这些号码最后四位替换为****,该如何做呢? 类似的问题和使用场景有很多,如果你的行记录有几千几 ...

  2. 替换字符串指定位置字符 php,PHP substr_replace 替换字符串指定位置字符

    摘要 腾兴网为您分享:PHP substr_replace 替换字符串指定位置字符,永安期货,兔兔府,千题库,平安知鸟等软件知识,以及红雪,圈圈,premierecs5,爱玩游戏盒,极压缩,中秋节快乐 ...

  3. javascript-字符串函数-指定位置字符-位置查找-字符串替换-字符串分割

    文章目录 1.指定位置字符 2.位置查找 3.截取子字符串 3.1.substring函数 3.2.slice函数 3.3.substr函数 3.4.分割总结 4.字符串替换 5.字符串分割 5.1. ...

  4. java 删除指定字符_字符串删除指定位置字符 JAVA 删除字符串中指定的字符

    <死侍2>有多不按套路出牌? 要CSS布局HTML小编今天和大家分享用到函数的调用. 编制函数fun,其功能是:删除一个字符串中指定的一.问题描述:从键盘输入一个字符串给str和一个字符给 ...

  5. python删除指定位置的字符串_python去除区域 python删除字符串中指定位置字符

    python删除字符串中指定位置字符 原程序是这样的: ser = serial.Serial("/dev/ttyAMA0", 9600) def main字符串的话,你可以把他当 ...

  6. string:删除string中指定位置的字符?指定的所有字符?

    使用迭代器删除string中指定位置的字符! string str = "huehfudhfruhgfsfgkhdyfsghydff";string::iterator itr = ...

  7. 2021-12-27 Java String contains() 方法用于判断字符串中是否包含指定的字符或字符串。用.toLowerCase().contains忽视大小写。

    一.public boolean contains(CharSequence chars) contains() 方法用于判断字符串中是否包含指定的字符或字符串. 二.返回值        如果包含指 ...

  8. 删除字符串中指定的字符形成字符串

    //删除字符串中指定的字符形成字符串 #include <stdio.h> #include <string.h>void fun(char s[],int c) {int n ...

  9. R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂、split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串、str_split_fixed

    R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂.split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串.str_split_fixed ...

最新文章

  1. subprocess installed post-installation script returned error exit status 1
  2. 在github上创建新分支
  3. NASA重金悬赏 太空尿片最佳解决方案
  4. Android-静态代理模式
  5. Java 7:项目代币中的代码示例
  6. 带你认识Flink容错机制的两大方面:作业执行和守护进程
  7. Linux kernel 国内repo
  8. sed -i 单引号中嵌套双引号_【函数应用】IF函数的多层嵌套
  9. mmap java_Java文件映射[Mmap]揭秘 | 学步园
  10. DSP TMS320F280049C之捕获eCAP(1)
  11. android如何设置自适应大小的背景图片,Android – 设置壁纸以适应手机屏幕尺寸...
  12. git clone 失败问题解决方案
  13. Android之手机振动和振铃
  14. 刺客列传鸿蒙记,高淳高级中学2020-2021学年高一上学期阶段测试语文试题.docx
  15. xunsearch开发流程(三)
  16. windows10软件图标去除小盾牌
  17. 安卓刷机刷错导致无限闪屏
  18. DLNA」的介紹與應用
  19. ubuntu完美安装espeak支持中文和粤语 不再报错:Full dictionary is not installed for 'zh'
  20. CTF show MISC base一条龙

热门文章

  1. SpringBoot的配置优先级,一个具体的练习例子
  2. 如何在SAP S/4HANA Fiori UI上创建新的扩展字段
  3. 一个抓取网站图片并提供批量下载功能的Chrome扩展
  4. 使用Fiddler监控网易云笔记客户端向服务器定时发送的sync请求
  5. SALES_ORG_RESP_SHORT and SALES_ORG_SHORT
  6. WebSocket客户端断开连接后,服务器端的处理机制
  7. how does eclipse know what tasks it should do when we select Maven build
  8. JavaScript里的...(三个点)操作符
  9. 从产品展示页面谈谈Hybris系列之三:Hybris Service层介绍
  10. c语言 编程 牛顿迭代,C语言编写牛顿迭代法的跟踪