c++string替换指定位置字符_Lua 字符串
--[[ 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 字符串相关推荐
- c++string替换指定位置字符_Excel数据分析:如何替换字符串中的指定字符?
数据分析预处理中,经常遇到这样的问题:现有字符串中,如何替换指定的部分字符,例如有大量电话号码,现需要将这些号码最后四位替换为****,该如何做呢? 类似的问题和使用场景有很多,如果你的行记录有几千几 ...
- 替换字符串指定位置字符 php,PHP substr_replace 替换字符串指定位置字符
摘要 腾兴网为您分享:PHP substr_replace 替换字符串指定位置字符,永安期货,兔兔府,千题库,平安知鸟等软件知识,以及红雪,圈圈,premierecs5,爱玩游戏盒,极压缩,中秋节快乐 ...
- javascript-字符串函数-指定位置字符-位置查找-字符串替换-字符串分割
文章目录 1.指定位置字符 2.位置查找 3.截取子字符串 3.1.substring函数 3.2.slice函数 3.3.substr函数 3.4.分割总结 4.字符串替换 5.字符串分割 5.1. ...
- java 删除指定字符_字符串删除指定位置字符 JAVA 删除字符串中指定的字符
<死侍2>有多不按套路出牌? 要CSS布局HTML小编今天和大家分享用到函数的调用. 编制函数fun,其功能是:删除一个字符串中指定的一.问题描述:从键盘输入一个字符串给str和一个字符给 ...
- python删除指定位置的字符串_python去除区域 python删除字符串中指定位置字符
python删除字符串中指定位置字符 原程序是这样的: ser = serial.Serial("/dev/ttyAMA0", 9600) def main字符串的话,你可以把他当 ...
- string:删除string中指定位置的字符?指定的所有字符?
使用迭代器删除string中指定位置的字符! string str = "huehfudhfruhgfsfgkhdyfsghydff";string::iterator itr = ...
- 2021-12-27 Java String contains() 方法用于判断字符串中是否包含指定的字符或字符串。用.toLowerCase().contains忽视大小写。
一.public boolean contains(CharSequence chars) contains() 方法用于判断字符串中是否包含指定的字符或字符串. 二.返回值 如果包含指 ...
- 删除字符串中指定的字符形成字符串
//删除字符串中指定的字符形成字符串 #include <stdio.h> #include <string.h>void fun(char s[],int c) {int n ...
- R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂、split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串、str_split_fixed
R语言使用str_split函数和str_split_fixed函数将字符串分割(分裂.split)成几个部分:str_split函数使用指定的字符或者字符串分割字符串.str_split_fixed ...
最新文章
- subprocess installed post-installation script returned error exit status 1
- 在github上创建新分支
- NASA重金悬赏 太空尿片最佳解决方案
- Android-静态代理模式
- Java 7:项目代币中的代码示例
- 带你认识Flink容错机制的两大方面:作业执行和守护进程
- Linux kernel 国内repo
- sed -i 单引号中嵌套双引号_【函数应用】IF函数的多层嵌套
- mmap java_Java文件映射[Mmap]揭秘 | 学步园
- DSP TMS320F280049C之捕获eCAP(1)
- android如何设置自适应大小的背景图片,Android – 设置壁纸以适应手机屏幕尺寸...
- git clone 失败问题解决方案
- Android之手机振动和振铃
- 刺客列传鸿蒙记,高淳高级中学2020-2021学年高一上学期阶段测试语文试题.docx
- xunsearch开发流程(三)
- windows10软件图标去除小盾牌
- 安卓刷机刷错导致无限闪屏
- DLNA」的介紹與應用
- ubuntu完美安装espeak支持中文和粤语 不再报错:Full dictionary is not installed for 'zh'
- CTF show MISC base一条龙
热门文章
- SpringBoot的配置优先级,一个具体的练习例子
- 如何在SAP S/4HANA Fiori UI上创建新的扩展字段
- 一个抓取网站图片并提供批量下载功能的Chrome扩展
- 使用Fiddler监控网易云笔记客户端向服务器定时发送的sync请求
- SALES_ORG_RESP_SHORT and SALES_ORG_SHORT
- WebSocket客户端断开连接后,服务器端的处理机制
- how does eclipse know what tasks it should do when we select Maven build
- JavaScript里的...(三个点)操作符
- 从产品展示页面谈谈Hybris系列之三:Hybris Service层介绍
- c语言 编程 牛顿迭代,C语言编写牛顿迭代法的跟踪