"%5s" 从左开始向右取五个字符
"%s" 将左边的字符串赋值给右边
"%[^ ]" 取到指定字符串为止的字符串,例子为取遇到空格为止的字符串
"%[^290#*]" 为取到2,9,0,#,*任意一个时,停止匹配
"%[1-9a-z]" 仅取包含指定字符集的字符串,例子为取仅包含1到9和小写字母的字符串
"%[dlza#i]" 仅匹配中括号中的字符,如果没有则停止匹配
"%[^A-Z]" 取到指定字符集为止的字符串,例子为取遇到大写字母为止的字符串
"%*s%s" 过滤掉第一个字符串内容,字符与字符之间空格隔开
重要:指定分隔符
"%*[^/]/%[^@]" 取/和@之间的字符串,"%*[^@]@%*[^/]/%[^@]" 取xxx@xxx/xxx@中/和@之间的内容
"%[^'.'].%[^'.']" 指定分隔符的字符串提取方式,上面例子过程中分隔符可变,本例分隔符可不变
"%*[^:]:%s" 类似于RBDName:LUN_31X:ee这样的字符串,上面和本例获取内容不同
"%[0-9:.]-%[0-9:.]" 如果标点过多,可以用该方式截取字符串
sscanf还可以这么过滤:
char buff[128] = "hik_vision_3400_guge";
sscanf(buff,"hik_vi%s",age);
sion_3400_guge
注意:
1、匹配特殊字符时:如^ [ ]等时,添加单引号可去除其特殊含义
2、[a|b|c|d]表示匹配其中任意一项均可
3、支持集合操作:
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
%[aB'] 匹配a、B、'中一员,贪婪性
%[^a] 匹配非a的任意字符,贪婪性
和正则表达式很相似,而且仍然支持过滤,即可以有%*[a-z]。
C语言库函数---sscanf
最新推荐文章于 2023-12-23 23:01:11 发布