(转载)Lua的string.gsub函数的使用方法

原文链接

Lua的string.gsub函数的使用方法

函数:ret = string.gsub( s, pattern, rep1[, n] );

参数介绍
s 源对象,需要操作的对象
pattern 模式串,操作对象中包含的元素
rep1 替换串,将s中包含的pattern替换成rep1
n 替换次数,从左到右开始,省略表示全替换
ret 返回值,返回替换后的结果

1. 当参数n省略,源对象包含的所有模式串都转换成替换串

ret = string.gsub("abcdefghijklmnabc", "a", "520");
print("ret: ", ret);

ret: 520bcdefghijklmn520bc


2. 当参数n为1时,源对象包含的第一个(从左到右)模式串被替换串替换

ret = string.gsub("abcdefghijklmnabc", "a", "520", 1);
print("ret: ", ret);

ret: 520bcdefghijklmnabc


3. 当参数n为2时,源对象包含的前面两个(从左到右)模式串被替换串替换

ret = string.gsub("abcdefghijklmnabc", "a", "520", 2);
print("ret: ", ret);

ret: 520bcdefghijklmn520bc


PS:

模式串可以用正则表达式表示

符号说明
. 任意字符
%a 字母
%c 控制字符
%d 数字
%l 小写字母
%p 标点字符
%s 空白符
%u 大写字母
%w 字母和数字
%x 十六进制数字
%z 代表 0的字符
(). % + - * ? [ ^ $ 特殊字符,需要用%转义

模式修饰符

符号含义
+ 匹配前一字符 1 次或多次,最长匹配
* 匹配前一字符 0 次或多次,最长匹配
- 匹配前一字符 0 次或多次,最短匹配
? 匹配前一字符 0 次或 1次
‘+’,匹配一个或多个字符,总是进行最长的匹配。
如,模式 ‘%a+’ 匹配一个或多个字母或者一个单词:
未完…
参考文档
posted @ 2022-05-15 17:54  青丝·旅人  阅读(845)  评论(0编辑  收藏  举报