1. 程式人生 > 其它 >(轉載)Lua的string.gsub函式的使用方法

(轉載)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+’ 匹配一個或多個字母或者一個單詞:
未完…
參考文件