• Boost String Algorithms Library 函数详解三 (find)


    Table 11.4. Find algorithms

    Algorithm nameDescriptionFunctions
    find_first Find the first occurrence of a string in the input find_first()
    ifind_first()
    find_last Find the last occurrence of a string in the input find_last()
    ifind_last()
    find_nth Find the nth (zero-indexed) occurrence of a string in the input find_nth()
    ifind_nth()
    find_head Retrieve the head of a string find_head()
    find_tail Retrieve the tail of a string find_tail()
    find_token Find first matching token in the string find_token()
    find_regex Use the regular expression to search the string find_regex()
    find Generic find algorithm find()



    基础示例:

     string str1("a1234_first_nth_first_nth_");
     boost::iterator_range<string::iterator> ir;
     
     // find_first 
     // ifind_first -- 不区分大小写,其它同find_first
     ir = find_first(str1, "first");
     assert(string(ir.begin(), ir.end()) == "first"); // 比较字符串
     assert(ir.begin() - str1.begin() == 6 && ir.end()-str1.begin() == 6 + 5); //查看搜索到的字符串所在位置
     to_upper(ir); // 利用iterator_range处理搜索到的字符串
     assert(str1 == "a1234_FIRST_nth_first_nth_");
     to_lower(ir);
     assert(str1 == "a1234_first_nth_first_nth_");
     ir = find_first(str1, "no");
     assert(ir.empty()); // 不存在
     assert(string(ir.begin(), ir.end()).empty()); // 不存在,仍可构建一个string
     ostringstream osstr;
         osstr << find_first( str1, "_first_" );
         assert( osstr.str()=="_first_" );
     
     // find_last -- 同findfirst,只是方向相反
     // ifind_last -- 不区分大小写,其它同findlast
    
     // find_nth
     ir = find_nth(str1, "nth", 1);
     assert(ir.begin() - str1.begin() == 22);
     ir = find_nth(str1, "nth", 0);
     assert(ir.begin() - str1.begin() == 12);
     // find_head
     // find_tail只是方向相反
     ir = find_head(str1, 5);
     transform(ir.begin(), ir.end(), ir.begin(), bind2nd(plus<char>(), 1));
     assert(str1 == "b2345_first_nth_first_nth_");
     // find_token
     ir = find_token(str1, is_any_of("irfst"));
     assert(string(ir.begin(), ir.end()) == "f");
     ir = find_token(str1, is_any_of("xfirts"), token_compress_off );
     assert(string(ir.begin(), ir.end()) == "f");
     ir = find_token(str1, is_any_of("irfst"), token_compress_on );
     assert(string(ir.begin(), ir.end()) == "first");
     ir = find_token(str1, is_any_of("fitr "), token_compress_on );
     assert(string(ir.begin(), ir.end()) == "fir");
     // find_regex
     boost::regex rx("b[0-9]+_");
     ir = find_regex(str1, rx);
     assert(string(ir.begin(), ir.end()) == "b2345_");
     // find_all_regex test table 11.4 里没有列出,boost_1_33_0\libs\algorithm\string\test 目录下有
     string str2("b1_b22_b333_b4444");
     vector<string> tokens;
         find_all_regex(tokens, str2, rx);
     assert(tokens.size() == 3);
     assert(tokens[0] == "b1_");
     assert(tokens[1] == "b22_");
     assert(tokens[2] == "b333_");
     // find
     ir = find(str1, first_finder(string("b2345_")));
     assert(string(ir.begin(), ir.end()) == "b2345_");;
  • 相关阅读:
    使用Jenkins自带功能(不用shell)构建Docker镜像并推送到远程仓库
    方法2:使用Jenkins构建Docker镜像 --SpringCloud
    在jenkins中使用shell命令推送当前主机上的docker镜像到远程的Harbor私有仓库
    解决跟Docker私有仓库登陆,推送,拉取镜像出现的报错
    Linux 内存占用大排查
    方法1:使用Jenkins构建Docker镜像 --SpringCloud
    使用Jenkins编译打包SpringCloud微服务中的个别目录
    使用Jenkins的Git Parameter插件来从远程仓库拉取指定目录的内容
    稀疏检出-使用git检索出仓库里的某一个目录文件,而不是整个仓库的所有文件
    通过 Kubeadm 安装 K8S 与高可用,版本1.13.4
  • 原文地址:https://www.cnblogs.com/lzjsky/p/1934805.html
Copyright © 2020-2023  润新知