日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

LUA string的状态

發(fā)布時(shí)間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LUA string的状态 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
字符串庫(kù)在表string內(nèi)提供所有函數(shù)。它也給字符串設(shè)置元表,其中的__index字段指向string表。因此,你可以使用面向?qū)ο箫L(fēng)格的字符串函數(shù)。例如,string.byte(s, i)可寫為s:byte(i)。

string.byte (s [, i [, j]])
返回字符s, s[i+1], ···, s[j]的內(nèi)部數(shù)字代碼。i缺省為1;j缺省為i。

注意數(shù)字代碼不一定是跨平臺(tái)可移植的。

string.char (···)
接受0獲多個(gè)整數(shù)。返回一個(gè)字符串,其長(zhǎng)度等于參數(shù)個(gè)數(shù),其中的每個(gè)字符的內(nèi)部數(shù)字代碼等于相應(yīng)的參數(shù)。

注意數(shù)字代碼不一定是跨平臺(tái)可移植的。

string.dump (function)

返回給定函數(shù)的二進(jìn)制表示的字符串,之后在其上應(yīng)用loadstring返回函數(shù)的拷貝。function必須是不帶upvalueLua函數(shù)。

string.find (s, pattern [, init [, plain]])
在字符串s中查找pattern的第一個(gè)匹配。如果找到則返回它開始和結(jié)束處在s中的索引;否則,返回nil。可選的第三參數(shù)init是數(shù)字,指定從哪兒開始搜索;其缺省值是1并且可為負(fù)數(shù)。如果真值作為可選的第四參數(shù)plain,則關(guān)閉模式匹配設(shè)備,所以函數(shù)執(zhí)行無(wú)格式的“查找子串”操作,pattern中的字符并不被認(rèn)為是“魔術(shù)的(magic)”。注意,如果給出了plain,則init也必須給出。

如果模式具有捕獲(capture),則在成功的匹配中被捕獲的值也在兩個(gè)索引后面返回。

string.format (formatstring, ···)
Returns a formatted version of its variable number of arguments following the description given in its first argument (which must be a string). 格式字符串遵循同printf族標(biāo)準(zhǔn)C函數(shù)同樣的規(guī)則。僅有的區(qū)別是不支持*、l、L、n、p和h等選項(xiàng)/修飾符,而且有個(gè)額外選項(xiàng)q。q選項(xiàng)以可安全地為L(zhǎng)ua解釋器讀取的適當(dāng)形式格式化字符串:字符串被寫在雙引號(hào)之間,而且字符串中的所有雙引號(hào)、換行、內(nèi)嵌的0和反斜杠被恰當(dāng)?shù)剞D(zhuǎn)義。例如,調(diào)用

string.format('%q', 'a string with "quotes" and \n new line')

產(chǎn)生字符串:

"a string with \"quotes\" and \
new line"

選項(xiàng)c、d、E、e、f, g、G、i、o、u、X和x都預(yù)期得到數(shù)字作為參數(shù),然而q和s期望得到字符串。

該函數(shù)不接受含有內(nèi)嵌的0的字符串值,除了作為q選項(xiàng)的參數(shù)。

string.gmatch (s, pattern)
返回一個(gè)迭代器函數(shù),每次調(diào)用返回來(lái)自pattern的下一個(gè)捕獲,從字符串s開頭直到結(jié)尾。如果pattern沒(méi)指定捕獲則每次調(diào)用產(chǎn)生整個(gè)匹配。

作為例子,下面的循環(huán)

s = "hello world from Lua"
for w in string.gmatch(s, "%a+") do
print(w)
end

將迭代來(lái)自字符串s的所有單詞,每行打印一個(gè)。下一個(gè)例子從給定的字符串收集所有的鍵=值對(duì)放在表中:

t = {}
s = "from=world, to=Lua"
for k, v in string.gmatch(s, "^(%w+)=(%w+)") do
t[k] = v
end

對(duì)于該函數(shù),模式起始處的‘^’不能作為錨點(diǎn),因?yàn)檫@會(huì)阻止迭代。

string.gsub (s, pattern, repl [, n])
返回s的拷貝,其中出現(xiàn)的所有(或前n個(gè),如果指定)pattern被替換為repl——可以是字符串、表或函數(shù),指定的替換串。gsub也返回出現(xiàn)的匹配的總數(shù)作為第二個(gè)值。

如果repl是字符串,它的值被用作替換式。字符%用作轉(zhuǎn)義字符:repl中的任何形如%n的序列代表第n個(gè)捕獲的子串(見下面),其中n在1和9之間。序列%0代表整個(gè)匹配。序列%%代表單個(gè)%。

如果repl是表,則對(duì)于每個(gè)匹配,用第一個(gè)捕獲作為鍵查詢表;如果模式未指定捕獲,則整個(gè)匹配被用作鍵。

如果repl是函數(shù),則每次匹配發(fā)生時(shí)都按順序傳入所有捕獲的子串作為參數(shù)調(diào)用該函數(shù);如果模式?jīng)]指定捕獲,則整個(gè)匹配作為單個(gè)參數(shù)傳入。

如果表查詢或函數(shù)調(diào)用返回的結(jié)果是個(gè)字符串或數(shù)字,則被用作替換串;否則,如果是false或nil,則不發(fā)生替換(即原始匹配被保持在字符串中)。

這里有一些例子:

x = string.gsub("hello world", "(%w+)", "%1 %1")
--> x="hello hello world world"

x = string.gsub("hello world", "%w+", "%0 %0", 1)
--> x="hello hello world"

x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1")
--> x="world hello Lua from"

x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv)
--> x="home = /home/roberto, user = roberto"

x = string.gsub("4+5 = $return 4+5$", "%$(.-)%$", function (s)
return loadstring(s)()
end)
--> x="4+5 = 9"

local t = {name="lua", version="5.1"}
x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t)
--> x="lua-5.1.tar.gz"

string.len (s)
接受字符串并返回其長(zhǎng)度。空串""長(zhǎng)度為0。內(nèi)嵌的0被計(jì)算在內(nèi),所以"a\000bc\000"長(zhǎng)度為5。

string.lower (s)
接受字符串并返回其所有大寫字母變?yōu)樾懙目截悺K衅渌址蛔儭4髮懽帜傅亩x依賴于但前l(fā)ocale。

string.match (s, pattern [, init])
在字符串s中查找pattern的首次匹配。如果找到一個(gè),則返回來(lái)自模式的捕獲;否則返回nil。如果pattern未指定捕獲則返回整個(gè)匹配。可選的第三個(gè)參數(shù)init是數(shù)字,指定從哪兒開始搜索;其缺省值是1并且可為負(fù)。

string.rep (s, n)
返回字符串s的n個(gè)拷貝拼接字符串。

string.reverse (s)
返回字符串s的顛倒的字符串。

string.sub (s, i [, j])
返回s的子串,它起始于i并延續(xù)到j(luò);i和j可為負(fù)數(shù)。如果省略j,則它被假定為-1(同字符串長(zhǎng)度一樣)。特別地,調(diào)用string.sub(s,1,j)返回s長(zhǎng)為j的前綴,而且string.sub(s, -i)返回s長(zhǎng)為i的后綴。

string.upper (s)
接受字符串并返回其所有小寫字母變?yōu)榇髮懙目截悺K衅渌址蛔儭P懽帜傅亩x依賴于但前l(fā)ocale

轉(zhuǎn)載于:https://www.cnblogs.com/lizs/p/3727731.html

總結(jié)

以上是生活随笔為你收集整理的LUA string的状态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。