zoukankan      html  css  js  c++  java
  • _stscanf_s (sscanf)正则表达式

    _stscanf_s (sscanf)正则表达式  

     
     
    {%[*] [width] [{h | l | I64 | L}]type  |  ' ' |  ' ' | ' ' | 非%符号},
    注:{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
    宽度,一般可以忽略,用法如:
    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
  • 相关阅读:
    大数据技术之Kafka是什么
    大数据技术之Hadoop 基础认识
    在eclipse中运行Mapreduce & spark
    datatstage 中一直处于Ready 状态
    Datastage run 有时候太慢 有时候performance 还Okay
    不能重复造轮子,尤其是枯燥的轮子,要造就造有趣的、好玩的轮子
    什么是好?什么是优秀?
    字面量-上集
    图片切换-vue
    数据绑定
  • 原文地址:https://www.cnblogs.com/wjgaas/p/3615647.html
Copyright © 2011-2022 走看看