. 任意字元
%s 空白符 空白字元一般包括空格、換行符\n、製表符\t以及回到行首符\r
%p 標點字元
%c 控制字元
%d 數字
%x 十六進製制數字
%z 代表0的字元
%a 字母
%l 小寫字母
%u 大寫字母
%w 字母和數字
上面字元類的大寫形式表示小寫所代表的集合的補集。例如,'%a'非字母的字元:
+ 匹配前一字元1次或多次
* 匹配前一字元0次或多次;最長匹配 -- 先盡可能長地把本次匹配模式走完,再繼續下乙個模式,
- 匹配前一字元0次或多次;最短匹配 -- 本次匹配模式每走一步,就考查下乙個模式能否進入.
? 匹配前一字元0次或1次
^ 匹配字串開頭
$ 匹配字串結尾
( ) . % + - * ? [ ^ $
'%' 用作特殊字元的轉義字元
'%.' 匹配點;
'%%' 匹配字元 '%'。
轉義字元 '%'不僅可以用來轉義特殊字元,還可以用於所有的非字母的字元。當對乙個字元有疑問的時候,為安全起見請使用轉義字元轉義他。
'[%w_]' 匹配字母數字和下劃線
'[01]' 匹配二進位制數字
'[%[%]]' 匹配一對方括號
在'' 中 使用連字元'-'
'%d' 表示 '[0-9]';
'%x' 表示 '[0-9a-fa-f]'
'[0-7]' 表示 '[01234567]'
在''開始處使用 '^' 表示其補集:
'[^0-7]' 匹配任何不是八進位制數字的字元;
'[^\n]' 匹配任何非換行符戶的字元。
'[^%s]' == '%s'
string.gsub(input, "^[ \t\n\r]+", "")pair =
"name = anna"
firstidx, lastidx, key, value = string.find(pair,
"(%a+)%s*=%s*(%a+)")
print(key, value) <== name anna
我們也可以將捕獲用於模式串自身,"([\"'])(.-)%1",這裡的%1表示匹配第乙個捕獲的乙份拷貝。
空白字元一般包括空格、換行符\n、製表符\t以及回到行首符\r,當然如果有特殊需求需要將其他的字元也當做空白字元也都是可以的!
string.gsub(input, "%s+$", "") %s 代表 空白符
string.gsub(input, "^%s*(.-)%s*$", "%1")
return (string.gsub(input, "^%s*(.-)%s*$", "%1"))加一層括號,只返回格式化後的字串!
scanf函式加空白符
scanf加空白符之後的效果 空白符 空格 space tab 回車 r 換頁 f 換行 n while c getchar c getchar t c getchar n 跳過空白符 注意while語句後面是分號 while c getchar c getchar t c getchar n 就是...
C語言中的空白符
空格 製表符 換行符統稱為空白符,它們只能佔位,沒有實際的內容。製表符也稱縮排,就是tab鍵,預設占用4個空格的位置,你也可以在編輯器中修改。對於編譯器,有的空白符會被忽略,有的卻不能。請看下面幾種 puts 的寫法 includeint main 執行結果 看到輸出結果,說明 沒有錯誤,以上幾種 ...
行內塊元素的空白符問題
資源收集 前端開發,css 在前端開發中,將幾個有固定寬高的盒子並列排布是極為常見的頁面效果,實現這個效果的方式有很多,諸如定位,浮動,彈性盒,行內塊元素等等,每個方法都有著其獨特的優點和缺點,今天我們這裡就來討論討論使用行內塊元素來實現並列排列的優缺點 首先我們先建立乙個大盒子並在其中再建立三個小...