sscanf正規表示式用法簡介

2022-07-13 15:51:11 字數 1283 閱讀 9697

其實sscanf中的篩選條件並不是嚴格意義上的正規表示式,只能說是正規表示式的簡化版本,直接套用正規表示式可能出錯。比如:

正規表示式中星號*、問號?、加號+、分別表示匹配≥0、1個、≥1、n~m個字元,而sscanf中預設匹配任意多個滿足條件的字元,直到遇到不滿足條件的字元(即相當於預設只有正規表示式星號* 號的功能),不可再使用星號*、問號?、加號+、

sscanf篩選條件中需要規定匹配字元個數時,應在%或%*後面加上相應數字

/*提取字串括號裡的字元*/

#include#includeint main()

/* %*[^(] 連續匹配非左括號字元first 並丟棄之,遇到左括號停止

( 匹配並丟棄左括號

%[^)] 連續匹配非右括號字元helloworld(遇到右括號停止)並賦值給str

%*[^\n] 連續匹配非換行符的字元,遇到換行符停止(不接收換行符),這部分可省略,不影響結果

%5[^)] 限定只匹配5個字元

*/

%代表選擇,後跟相應條件

%*代表過濾(即連續匹配滿足條件的字元,並丟棄)

%%*後面緊跟的數字代表匹配的字元個數

%5[^)]代表匹配5個非)的字元,內是篩選的條件,^表示否定,如%[a-z]表示接收小寫字母,%[a-z0-9]表示接收大寫字母及數字

要匹配中間的字元時,應先將前面的字元用%*過濾掉

1. 提取子串

// 讀取行,並提取第乙個括號裡的子串

#include int main()

return 0;

}

執行樣例:

one (two) three

|two|

four (five) six

|five|

seven eight (nine) ten

|nine|

2. 字串在printfscanf中的使用

參考資料:

sscanf正規表示式

c語言 sscanf正規表示式 2011 01 07 00 18 表頭檔案 include stdio.h 定義函式 int sscanf const char str,const char format,函式說明 sscanf 會將引數str的字串根據引數format字串來轉換並格式化資料。格式轉...

sscanf的高階用法 正規表示式

sscanf 從乙個字串中讀進與指定格式相符的資料。函式原型 int sscanf const char const char int sscanf const char buffer,const char format,argument buffer儲存的資料 format格式控制字串 argum...

sscanf的高階用法 正規表示式

sscanf 從乙個字串中讀進與指定格式相符的資料。函式原型 int sscanf const char const char int sscanf const char buffer,const char format,argument buffer儲存的資料 format格式控制字串 argum...