<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                定義: ``` string2='runoob.com' //runoob.com string1="Lua" //Lua string3=[["Lua 教程"]] //"Lua 教程" ``` ### 字符串處理 ``` //字符串的長度 string.len('abc') //字符串大小寫轉換 string1="Lua"; string.upper(string1) string.lower(string1) //字符轉整數 string.byte(arg [,int]) 第二個是選擇轉的字符,省略則默認為第一個 a=string.byte("ABCD",1) print(a) //65 b=string.byte("ABCD",4) print(b) //68 c=string.byte("D") print(c) //68 //將整型數字轉成字符并連接 :string.char(arg) a=string.char(65,97,98,99,100) print(a) //Aabcd local start = "1" local t = type(start) if t == "string" then start= tonumber(start) //判斷是string類型的話,轉為number end print(start) //1 local start = "32" start= tonumber(start) print(start) //32 local start = "b" start= tonumber(start) print(start) //nil local start = "1b" start= tonumber(start) print(start) //nil //字符串查找 :string.find默認情況下返回兩個值 string.find(源字符串, 待搜索模式串 [,起始位置 [, plain]] ) string="Lua Tutorial" print(string.find(string,"Tutorial")) //3 12 a,b=string.find(string,"Tutorial") print(a) //3 print(b) //12 //字符串替換 **string.gsub(源字符串,查找的字符,替換的字符,替換次數省略則全部替換)** string.gsub("aaaa","a","b",3); //bbba //字符串反轉 string="abc 123" reversedString=string.reverse(string) print("新字符串為",reversedString) //新字符串為 321 cba 拷貝n個string字符串:string.rep(string, n) str=string.rep("ac",2) print(str) //acac str=string.rep("ac",3) print(str) //acacac //格式化字符串 a=string.format("the value is:%d",4) print(a) * %c - 接受一個數字, 并將其轉化為ASCII碼表中對應的字符 * %d, %i - 接受一個數字并將其轉化為有符號的整數格式 * %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位. 字符串匹配 string.gmatch(str, pattern) 返回一個迭代器函數,每一次調用這個函數,返回一個在字符串 str 找到的下一個符合 pattern 描述的子串。如果參數 pattern 描述的字符串沒有找到,迭代函數返回nil 一般是用于遍歷匹配 for key,value in string.gmatch("Hello Lua user", "%a+") do print(value) // end 輸出: Hello Lua user ``` ## **匹配模式** Lua 中的匹配模式直接用常規的字符串來描述。 它用于模式匹配函數string.find, string.gmatch, string.gsub, string.match string.match(str, pattern, init):只尋找源字串str中的第一個配對. 參數init可選, 指定搜尋過程的起點, 默認為1 在成功配對時, 函數將返回配對表達式中的所有捕獲結果; 如果沒有設置捕獲標記, 則返回整個配對字符串. 當沒有成功的配對時, 返回nil 下面的表列出了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 ~~~ 數字4不是字符串結果的一部分,他是gsub返回的第二個結果,代表發生替換的次數。 在模式匹配中有一些特殊字符,他們有特殊的意義,Lua中的特殊字符如下: ~~~ ( ) . % + - * ? [ ^ $ ~~~ '%' 用作特殊字符的轉義字符,因此 '%.' 匹配點;'%%' 匹配字符 '%'。轉義字符 '%'不僅可以用來轉義特殊字符,還可以用于所有的非字母的字符。 **模式條目可以是:** * 單個字符類匹配該類別中任意單個字符; * 單個字符類跟一個 '`*`', 將匹配零或多個該類的字符。 這個條目總是匹配盡可能長的串; * 單個字符類跟一個 '`+`', 將匹配一或更多個該類的字符。 這個條目總是匹配盡可能長的串; * 單個字符類跟一個 '`-`', 將匹配零或更多個該類的字符。 和 '`*`' 不同, 這個條目總是匹配盡可能短的串; * 單個字符類跟一個 '`?`', 將匹配零或一個該類的字符。 只要有可能,它會匹配一個; * `%*n*`, 這里的*n*可以從 1 到 9; 這個條目匹配一個等于*n*號捕獲物(后面有描述)的子串。 * `%b*xy*`, 這里的*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 。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看