內是匹配的字元,^表示求反集,當遇到非集合內的字元時立即終止輸入
1.輸入指定範圍的小寫字母,遇到非法字元立即終止
scanf("%[a-z]",str1);
printf("%s\n",str1);
輸入:abc123
輸出:ab
//輸入帶空格的自定範圍的字串
scanf("%[a-z a-z0-9]", str1);
printf("%s\n",str1);
輸入:abc123 def 456
輸出:abc 123 def 456
scanf("%[a-z0-9]", str1);
printf("%s\n",str1);
輸入:abc123
輸出:abc
2.輸入不包括指定字元的字元
scanf("%[^a-z]", str1);
printf("%s\n",str1);
輸入:123456abc123
輸出:123456
注意:這種方式可以讀入空格
scanf("%[^\n]", str1);
printf("%s\n",str1);
//讀入一整行字串,包括空格
輸入:abc123 def
輸出:abc123 def
scanf("%[^a-d0-9]", str1);
printf("%s\n",str1);
輸入:defxy89
輸出:defxy
我們來看看百分號表示什麼意思:
%表示選擇,%後面的是條件,比如"%s",s是乙個條件,表示任意字元,"%s"的意思是:只要輸入的東西是乙個字元,就把它拷貝給str。"%3s"又多了乙個條件:只拷貝3
個字元。 「%[a-z]」的條件稍微嚴格一些,輸入的東西不但是字元,還得是乙個小寫字母的字元。
%* 與%剛好相反,表示過濾滿足條件的字元,也就是跳過滿足條件的字元,其後一定要有新的%語句,否則無法讀入
3.跳過指定範圍的字元再讀取指定範圍的字元
scanf("%*[a-z0-9]%[^\n]",str1);
printf("%s\n",str1);
輸入:a1b2c3abcdef 123
輸出:abc def 123
4.%和%*組合使用可以提取指定字串
從中提取tom
const
char* url = "";
char uri[10] = ;
sscanf(url,"%*[^:]:%[^@]", uri);
printf("%s ",uri);
從iios/12ddwdff@122中提取12ddwdff
const char* s = "iios/12ddwdff@122";
char buf[20];
sscanf(s, "%*[^/]/%[^@]", buf);
在UltraEdit中使用正規表示式
在ultraedit中使用正規表示式 刪除空行 替換 t p 為 空串 刪除行尾空格 替換 t 為 空串 刪除行首空格 替換 t 為 空串 每行設定為固定的4個空格開頭 替換 t t p 為 1 每段設定為固定的4個空格開頭 替換 t 為 如果一行是以空格開始的,則視之為一段的開始行 將一段合併為一...
在DELPHI中使用正規表示式
在網上發現,有多種方法可在delphi中使用正規表示式。竊以為直接使用微軟的regexp物件會比較簡單,無需額外工作。使用微軟regexp方法 2.註冊vbscript.dll regsvr32 命令,若安裝過vb或ie5以上會預設安裝該dll 3.在delphi中引入 microsoft vbsc...
在UltraEdit中使用正規表示式
刪除空行 替換 t p 為 空串 刪除行尾空格 替換 t 為 空串 刪除行首空格 替換 t 為 空串 每行設定為固定的4個空格開頭 替換 t t p 為 1 每段設定為固定的4個空格開頭 替換 t 為 如果一行是以空格開始的,則視之為一段的開始行 將一段合併為一行 替換 t p t p 為 1 注意...