Lua模式匹配

具備特殊意義的字符
( ) . % + - * ?[ ^ $spa

( )  捕獲 :string.find("name= anna","(%a+)%s*=%s*(%a+)")//除了返回索引外還要返回用(%a+)捕獲的兩個單詞
.    匹配任意字符
%     轉義字符:%%匹配字符%
[]     匹配中括號內的字符串總體:類 [01] 匹配二進制數字
^      補集
+    匹配前一個字符一次或者屢次 
*    匹配前一個字符0次或者屢次
-    。。
?    匹配前一個字符0次或1次

例子code

%a+ 匹配一個或者多個字母或者是一個單詞
%d+ 匹配一個或者多個數字
 string.gsub("one,and","%a+","zzy")
%(%s*%)  匹配()之間的0個或者多個空白
/%*.*%*/  匹配第一個/*和最後一個/*的全部
/%*.-%*/  匹配第一個/*和第一個*/之間的部分blog

.-  匹配全部的字符索引

修飾模式
以^ 開頭的模式只匹配目標串的開始部分
以$ 結尾的模式只匹目標串的結尾部分
^[+-]?%d+$ 檢查目標穿是不是一個整數
%b 匹配對稱的字符
 %b() 匹配一(開始以)結束的字符串
 %bxy ...
 
捕獲
想達到\command{some text} --><command> some text</command>
能夠這樣實現:string.gsub(s,"\\(%a+){(.-)}","<%1>%2</%1>")
string.gsub(s,"^%s*(.-)%s*$","%1")  去除空格字符串

相關文章
相關標籤/搜索