Lua 字串替換函數 string.gsub(s, pat, repl [, n])

來源:互聯網
上載者:User

Lua 字串替換函數 string.gsub(s, pat, repl [, n])

原文連結:http://blog.csdn.net/zhangxaochen/article/details/8085484

函數原型 string.gsub(s, pat, repl [, n])

就是 global 全域替換子字串的意思
s: 源字串
pat: 即 pattern, 匹配模式
repl: replacement, 將 pat 匹配到的字串替換為 repl
[, n]: 可選, 表示只看源字串的前 n 個字元

比如寫一個 trim 函數:

function trim(s) return (string.gsub(s, "^%s*(.-)%s*$", "%1"))end----然後調用:s='\t a bc d 'print(trim(s))  -----輸出: a bc d, 開頭的 \t, 結尾的空格 都被 trim 掉了

這裡有幾點要解釋:
1. return (string.gsub(...)), 注意 string.gsub 外面還有一層括弧。 事實上, gsub 調用之後返回 兩個值, 一個是替換後的字串, 第二個是替換的次數。 而一旦外面加了括弧, 就只返回第一個值, 即替換後的字串。你可以嘗試去掉外層括弧, 看看輸出了什麼

2. 匹配模式字串 "^...$", 表示匹配的是整個字串。 ^ 表開頭, $ 表示結尾。在這裡, (.-) 的效果跟 (.*) 的效果應該是一樣的, 因為反正是從字串開頭匹配到結尾。
如果去掉 ^跟$, 那麼就不是匹配整個字串, 在 (.-) 的作用下, 輸出就成了: abcd 連在一起
原文連結:http://blog.csdn.net/zhangxaochen/article/details/8085484

{{OVER}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.