來自: https://blog.csdn.net/huang_xw/article/details/8276123 網絡
函數聲明:函數
-
template<typename Range1T, typename Range2T>
-
iterator_range find_first(Range1T & Input, const Range2T & Search);
-
template<typename Range1T, typename Range2T>
-
iterator_range find_last(Range1T & Input, const Range2T & Search);
-
template<typename Range1T, typename Range2T>
-
iterator_range find_nth(Range1T &Input, const Range2T & Search, int Nth);
-
template<typename RangeT>
-
find_head(RangeT &Input,
int N);
-
template<typename RangeT>
-
find_tail(RangeT & Input,
int N);
例子:ui
-
-
-
-
-
-
void test_string_find_string()
-
-
std::string str1("a1234_first_nth_first_nth_");
-
boost::iterator_range<
std::string::iterator> ir;
-
-
-
ir = boost::find_first(str1,
"first");
-
-
assert(
std::string(ir.begin(), ir.end()) == "first");
-
-
assert(ir.begin() - str1.begin() ==
6 && ir.end() - str1.begin() == 6 + 5);
-
-
-
assert(str1 ==
"a1234_FIRST_nth_first_nth_");
-
-
assert(str1 ==
"a1234_first_nth_first_nth_");
-
-
-
ir = boost::find_first(str1,
"no");
-
-
assert(
std::string(ir.begin(), ir.end()).empty());
-
std::ostringstream osstr;
-
osstr << boost::find_first(str1,
"_first_");
-
assert(osstr.str() ==
"_first_");
-
find_token的函數聲明spa
-
template<typename RangeT, typename PredicateT>
-
iterator_range<
typename range_iterator< RangeT >::type >
-
find_token(RangeT & Input, PredicateT Pred,
-
token_compress_mode_type eCompress = token_compress_off);
find_token的例子.net
-
void test_string_find_token()
-
-
-
-
std::string str1("ab1234_first_nth_first_nth_");
-
iterator_range<
std::string::iterator> ir;
-
-
ir = find_token(str1, is_any_of(
"irfst"));
-
assert(
std::string(ir.begin(), ir.end()) == "f");
-
-
ir = find_token(str1, is_any_of(
"xfirts"), token_compress_off);
-
assert(
std::string(ir.begin(), ir.end()) == "f");
-
-
ir = find_token(str1, is_any_of(
"irfst"), token_compress_on);
-
assert(
std::string(ir.begin(), ir.end()) == "first");
-
-
ir = find_token(str1, is_any_of(
"fitr "), token_compress_on);
-
assert(
std::string(ir.begin(), ir.end()) == "fir");
-
-
ir = find_token(str1, is_lower(), token_compress_on);
-
assert(
std::string(ir.begin(), ir.end()) == "ab");
-
find_regex的例子code
-
-
-
-
void test_string_find_regex()
-
-
-
-
std::string str1("ab1234_first_nth_first_nth_");
-
iterator_range<
std::string::iterator> ir;
-
-
-
ir = find_regex(str1, rx);
-
assert(
std::string(ir.begin(), ir.end()) == "b1234_");
-
-
std::string str2("b1_b22_b333_b4444");
-
std::vector<std::string> tokens;
-
find_all_regex(tokens, str2, rx);
-
assert(tokens.size() ==
3);
-
assert(tokens[
0] == "b1_");
-
assert(tokens[
1] == "b22_");
-
assert(tokens[
2] == "b333_");
-
-
-
std::string value = "123a1cxxxxa56c";
-
regex pattern("a[0-9]+c");
-
iterator_range<
std::string::iterator> find_result;
-
find_result = algorithm::find_regex(value, pattern);
-
assert(!find_result.empty());
-
-
std::vector<std::string> results;
-
find_all_regex(results, value, pattern);
-
assert(
"a1c" == results[0]);
-
assert(
"a56c" == results[1]);
-
assert(!results.empty());
-
-
value =
"10.10.10.10 1.1.1.1";
-
boost::
regex ip_pattern("(\\d{1, 3}.){3}\\d{1, 3}");
-
find_all_regex(results, value, ip_pattern);
-
assert(
"10.10.10.10" == results[0]);
-
assert(
"1.1.1.1" == results[1]);
-
assert(!results.empty());