_stscanf_s (sscanf)正则表达式
2024-09-01 15:45:36
_stscanf_s (sscanf)正则表达式
{%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号},
注:{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
width:宽度,一般可以忽略,用法如:
const char sourceStr[] = "hello, world";
char buf[10] = {0};
sscanf(sourceStr, "%5s", buf); //%5s,只取5个字符
cout << buf<< endl;
结果为:hello
{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。
type :这就很多了,就是%s,%d之类。
特别的:
%*[width] [{h | l | I64 | L}]type 表示满足该条件的被过滤掉,不会向目标参数中写入值。如:
const char sourceStr[] = "hello, world";
char buf[10] = {0};
sscanf(sourceStr, "%*s%s", buf); //%*s表示第一个匹配到的%s被过滤掉,即hello被过滤了
cout << buf<< endl;
结果为:world
支持集合操作:
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
%[aB'] 匹配a、B、'中一员,贪婪性
%[^a] 匹配非a的任意字符,贪婪性
%*c表示忽略连续多个字符
%[^ ] 取遇到空格为止字符串
%[^A-Z] 取遇到大写字母为止的字符串
%[1-9a-z] 取仅包含1到9和小写字母的字符串
看看周星星同学的例子
const char* s = "iios/12DDWDFF@122";
sscanf( s, "%*[^/]/%[^@]", buf );
结果为:12DDWDFF
最新文章
- java常用设计模式
- 【2016-11-7】【坚持学习】【Day22】【Oracle 分页查询】
- 详解.Net消息队列(MSMQ)应用
- ubuntu14.04安装bodhi桌面系统后,unity启动界面改变,如何还原
- java编程思想-java 异常使用指南
- iBeacon
- Ubuntu11.10打开XDMCP,使用XManager远程管理
- session的存储方式和配置
- java中部分知识点的验证实现
- Android一个包含表格的图标库
- Linux知识体系之磁盘与档案系统管理
- eclipse下svn的使用
- bzoj 1257: [CQOI2007]余数之和 (数学+分块)
- 0001-20180421-自动化第一章-python基础学习笔记
- extern的使用详解(多文件编程)——C语言
- centos7 下安装配置python3.6
- Mac Terminal
- 作业6--四则运算APP之Sprint计划
- HDU - 1754 A - I Hate It 线段树
- acceptorThreadCount
热门文章
- Python 自学笔记(二)
- (main)贝叶斯统计 | 贝叶斯定理 | 贝叶斯推断 | 贝叶斯线性回归 | Bayes&#39; Theorem
- CCF认证历年试题
- CImage中m_hBitmap!=0弹框报错
- 十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!
- springboot之activemq安装与实践
- 007-log-log4j2、slf4j+log4j2
- Spring Boot连接MySQL长时间不连接后报错`com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.`的解决办法
- swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
- OpenCV.问题&;解决