第九章 Lua字串

2021-09-26 05:59:45 字數 3056 閱讀 8426

1. lua 語言中字串可以使用以下三種方式來表示:

string1 = "lua"

string2 = 'runoob.com'

string3 = [["lua 教程"]]

2. 字串轉義符:

\a     \b     \f     \n     \r     \t     \v     \\     \'     \"     \0     \ddd     \xhh

3. 字串操作方法:

string.upper(「string」):轉為大寫字母。

string.lower("string"):轉為小寫字母。

string.gsub("mainstrng","oldstring","newstrng",num):在字串中替換。源字串,要從源中替換掉的字串,要替換成的字串,查詢要替換多少次(可以忽略,則全部替換)。

string.find (「string」, "substring", startindex):搜尋指定的內容(第三個引數為索引),返回其具體位置。不存在則返回 nil。

string.reverse("string"):字串內容反轉

string.format(...)返回乙個類似printf的格式化字串     string.format("the value is:%d",4)

string.char(arg) 和 string.byte(arg[,int])string.char(97,98,99,100)     string.byte("abcd",4)     string.byte("abcd")

string.len(「string」)計算字串長度。

string.rep("string", num)返回字串string的n個拷貝。

..     連線兩個字串

string.gmatch(「string」, pattern)

string.match("string", pattern, init)只尋找源字串str中的第乙個配對. 引數init可選, 指定搜尋過程的起點, 預設為1。

在成功配對時, 函式將返回配對表示式中的所有捕獲結果; 如果沒有設定捕獲標記, 則返回整個配對字串. 當沒有成功的配對時, 返回nil。

4. 字串格式化:

格式字串可能包含以下的轉義碼:

為進一步細化格式, 可以在%號後新增引數. 引數將以如下的順序讀入:

5. 字元與整數之間相互轉換

-- 轉換第乙個字元

print(string.byte("lua"))

-- 轉換第三個字元

print(string.byte("lua",3))

-- 轉換末尾第乙個字元

print(string.byte("lua",-1))

-- 第二個字元

print(string.byte("lua",2))

-- 轉換末尾第二個字元

print(string.byte("lua",-2))

-- 整數 ascii 碼轉換為字元

print(string.char(97))

執行結果:76     97     97     117     117     a

6. 匹配模式:

字元類%d匹配任意數字

s = "deadline is 30/05/1999, firm"

date = "%d%d/%d%d/%d%d%d%d"

print(string.sub(s, string.find(s, date)))    --> 30/05/1999

下面的表列出了lua支援的所有字元類:

單個字元(除 ^$()%.*+-? 外): 與該字元自身配對

當上述的字元類用大寫書寫時, 表示與非此字元類的任何字元配對. 例如, %s表示與任何非空白字元配對.例如,'%a'非字母的字元:

> print(string.gsub("hello, up-down!", "%a", "."))

hello..up.down.    4

數字4不是字串結果的一部分,他是gsub返回的第二個結果,代表發生替換的次數。

在模式匹配中有一些特殊字元,他們有特殊的意義,lua中的特殊字元如下:

( ) . % + - * ? [ ^ $
'%' 用作特殊字元的轉義字元,因此 '%.' 匹配點;'%%' 匹配字元 '%'。轉義字元 '%'不僅可以用來轉義特殊字元,還可以用於所有的非字母的字元。

模式條目可以是:

模式:

模式 指乙個模式條目的序列。 在模式最前面加上符號 '^' 將錨定從字串的開始處做匹配。 在模式最後面加上符號 '$' 將使匹配過程錨定到字串的結尾。 如果 '^' 和 '$' 出現在其它位置,它們均沒有特殊含義,只表示自身。

捕獲:

模式可以在內部用小括號括起乙個子模式; 這些子模式被稱為 捕獲物。 當匹配成功時,由 捕獲物 匹配到的字串中的子串被儲存起來用於未來的用途。 捕獲物以它們左括號的次序來編號。 例如,對於模式"(a*(.)%w(%s*))", 字串中匹配到"a*(.)%w(%s*)"的部分儲存在第乙個捕獲物中 (因此是編號 1 ); 由 "." 匹配到的字元是 2 號捕獲物, 匹配到 "%s*" 的那部分是 3 號。

作為乙個特例,空的捕獲()將捕獲到當前字串的位置(它是乙個數字)。 例如,如果將模式"()aa()"作用到字串"flaaap"上,將產生兩個捕獲物: 3 和 5 。

第九章 字串,字元和位元組

1.nul位元組是字串終止符,但它本身並不是字串的一部分,所以字串的長度並不包括nul位元組。2.size t這個型別是在標頭檔案stddef.h中定義的,返回長度。3.連線字串 strcat strcpy message,hello strcat message,customer name str...

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...

第九章作業

班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...