test_tricky_cases.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 439 行 · 第 1/3 页

CPP
439
字号
   TEST_REGEX_SEARCH("[a-z]+", perl|icase, "abcABC", match_default, make_array(0, 6, -2, -2));      TEST_REGEX_SEARCH("[A-Z]+", perl|icase, "abzANZ", match_default, make_array(0, 6, -2, -2));      TEST_REGEX_SEARCH("[a-Z]+", perl|icase, "abzABZ", match_default, make_array(0, 6, -2, -2));      TEST_REGEX_SEARCH("[A-z]+", perl|icase, "abzABZ", match_default, make_array(0, 6, -2, -2));      TEST_REGEX_SEARCH("[[:lower:]]+", perl|icase, "abyzABYZ", match_default, make_array(0, 8, -2, -2));      TEST_REGEX_SEARCH("[[:upper:]]+", perl|icase, "abzABZ", match_default, make_array(0, 6, -2, -2));      TEST_REGEX_SEARCH("[[:word:]]+", perl|icase, "abcZZZ", match_default, make_array(0, 6, -2, -2));      TEST_REGEX_SEARCH("[[:alpha:]]+", perl|icase, "abyzABYZ", match_default, make_array(0, 8, -2, -2));      TEST_REGEX_SEARCH("[[:alnum:]]+", perl|icase, "09abyzABYZ", match_default, make_array(0, 10, -2, -2));      // known and suspected bugs:   TEST_REGEX_SEARCH("\\(", perl, "(", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\)", perl, ")", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\$", perl, "$", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\^", perl, "^", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\.", perl, ".", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\*", perl, "*", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\+", perl, "+", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\?", perl, "?", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\[", perl, "[", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\]", perl, "]", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\|", perl, "|", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\\\", perl, "\\", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("#", perl, "#", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\#", perl, "#", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("a-", perl, "a-", match_default, make_array(0, 2, -2, -2));   TEST_REGEX_SEARCH("\\-", perl, "-", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\{", perl, "{", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\}", perl, "}", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("0", perl, "0", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("1", perl, "1", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("9", perl, "9", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("b", perl, "b", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("B", perl, "B", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("<", perl, "<", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH(">", perl, ">", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("w", perl, "w", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("W", perl, "W", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("`", perl, "`", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH(" ", perl, " ", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("\\n", perl, "\n", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH(",", perl, ",", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("a", perl, "a", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("f", perl, "f", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("n", perl, "n", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("r", perl, "r", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("t", perl, "t", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("v", perl, "v", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("c", perl, "c", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("x", perl, "x", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH(":", perl, ":", match_default, make_array(0, 1, -2, -2));   TEST_REGEX_SEARCH("(\\.[[:alnum:]]+){2}", perl, "w.a.b ", match_default, make_array(1, 5, 3, 5, -2, -2));   // new bugs detected in spring 2003:   TEST_REGEX_SEARCH("b", perl, "abc", match_default|match_continuous, make_array(-2, -2));   TEST_REGEX_SEARCH("(?!foo)bar", perl, "foobar", match_default, make_array(3, 6, -2, -2));   TEST_REGEX_SEARCH("(?!foo)bar", perl, "??bar", match_default, make_array(2, 5, -2, -2));   TEST_REGEX_SEARCH("(?!foo)bar", perl, "barfoo", match_default, make_array(0, 3, -2, -2));   TEST_REGEX_SEARCH("(?!foo)bar", perl, "bar??", match_default, make_array(0, 3, -2, -2));   TEST_REGEX_SEARCH("(?!foo)bar", perl, "bar", match_default, make_array(0, 3, -2, -2));   TEST_REGEX_SEARCH("a\\Z", perl, "a\nb", match_default, make_array(-2, -2));   TEST_REGEX_SEARCH("()", perl, "abc", match_default, make_array(0, 0, 0, 0, -2, 1, 1, 1, 1, -2, 2, 2, 2, 2, -2, 3, 3, 3, 3, -2, -2));   TEST_REGEX_SEARCH("^()", perl, "abc", match_default, make_array(0, 0, 0, 0, -2, -2));   TEST_REGEX_SEARCH("^()+", perl, "abc", match_default, make_array(0, 0, 0, 0, -2, -2));   TEST_REGEX_SEARCH("^(){1}", perl, "abc", match_default, make_array(0, 0, 0, 0, -2, -2));   TEST_REGEX_SEARCH("^(){2}", perl, "abc", match_default, make_array(0, 0, 0, 0, -2, -2));   TEST_REGEX_SEARCH("^((){2})", perl, "abc", match_default, make_array(0, 0, 0, 0, 0, 0, -2, -2));   TEST_REGEX_SEARCH("()", perl, "", match_default, make_array(0, 0, 0, 0, -2, -2));   TEST_REGEX_SEARCH("()\\1", perl, "", match_default, make_array(0, 0, 0, 0, -2, -2));   TEST_REGEX_SEARCH("()\\1", perl, "a", match_default, make_array(0, 0, 0, 0, -2, 1, 1, 1, 1, -2, -2));   TEST_REGEX_SEARCH("a()\\1b", perl, "ab", match_default, make_array(0, 2, 1, 1, -2, -2));   TEST_REGEX_SEARCH("a()b\\1", perl, "ab", match_default, make_array(0, 2, 1, 1, -2, -2));   TEST_REGEX_SEARCH("([a-c]+)\\1", perl, "abcbc", match_default, make_array(1, 5, 1, 3, -2, -2));   TEST_REGEX_SEARCH(".+abc", perl, "xxxxxxxxyyyyyyyyab", match_default, make_array(-2, -2));   TEST_REGEX_SEARCH("(.+)\\1", perl, "abcdxxxyyyxxxyyy", match_default, make_array(4, 16, 4, 10, -2, -2));   // this should not throw:   TEST_REGEX_SEARCH("[_]+$", perl, "___________________________________________x", match_default, make_array(-2, -2));   // bug in V4 code detected 2004/05/12:   TEST_REGEX_SEARCH("\\l+", perl|icase, "abcXYZ", match_default, make_array(0, 6, -2, -2));   TEST_REGEX_SEARCH("\\u+", perl|icase, "abcXYZ", match_default, make_array(0, 6, -2, -2));   TEST_REGEX_SEARCH("(a)(?:b)", perl|nosubs, "ab", match_default, make_array(0, 2, -2, -2));   // bug reported 2006-09-20:   TEST_REGEX_SEARCH("(?:\\d{9}.*){2}", perl, "123456789dfsdfsdfsfsdfds123456789b", match_default, make_array(0, 34, -2, -2));   TEST_REGEX_SEARCH("(?:\\d{9}.*){2}", perl, "123456789dfsdfsdfsfsdfds12345678", match_default, make_array(-2, -2));   TEST_REGEX_SEARCH("(?:\\d{9}.*){2}", perl, "123456789dfsdfsdfsfsdfds", match_default, make_array(-2, -2));   TEST_REGEX_SEARCH("^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$", perl, "1.2.03", match_default, make_array(-2, -2));   TEST_REGEX_SEARCH("^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3,4}$", perl, "1.2.03", match_default, make_array(-2, -2));   TEST_REGEX_SEARCH("^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3,4}?$", perl, "1.2.03", match_default, make_array(-2, -2));   //   // the strings in the next test case are too long for most compilers to cope with,   // we have to break them up and call the testing procs directly rather than rely on the macros:   //   static const char* big_text = "00001 01 \r\n00002 02 1         2         3         4         5         6"      "7         8         9         0\r\n00003 03 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\r\n"      "00004 04 \r\n00005 05 \r\n00006 06                                                                      "      "Seite: 0001\r\n00007 07                                                             "      "StartSeitEEnde: 0001\r\n00008 08                                                             "      "StartSeiTe Ende: 0001\r\n00009 09                                                             "      "Start seiteEnde: 0001\r\n00010 10                                                             "      "28.2.03\r\n00011 11                                                             "      "Page: 0001\r\n00012 12                                                             "      "Juhu die Erste: 0001\r\n00013 13                                                             "      "Es war einmal! 0001\r\n00014 14                               ABCDEFGHIJKLMNOPQRSTUVWXYZ0001\r\n"      "00015 15                               abcdefghijklmnopqrstuvwxyz0001\r\n"      "00016 16                               lars.schmeiser@gft.com\r\n00017 17 \r\n"      "00018 18 \r\n00019 19 \r\n00020 20 \r\n00021 21 1         2         3         4         5         "      "6         7         8         9         0\r\n"      "00022 22 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\r\n"      "00023 01 \r\n00024 02 1         2         3         4         5         6         7         8         9         0\r\n"      "00025 03 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\r\n"      "00026 04 \r\n00027 05 \r\n00028 06                                                             "      "Seite: 0002\r\n00029 07                                                             StartSeitEEnde: 0002\r\n"      "00030 08                                                             "      "StartSeiTe Ende: 0002\r\n00031 09                                                             "      "Start seiteEnde: 0002\r\n00032 10                                                             "      "28.02.2003\r\n00033 11                                                             "      "Page: 0002\r\n00034 12                                                             "      "Juhu die Erste: 0002\r\n00035 13                                                             "      "Es war einmal! 0002\r\n00036 14                               ABCDEFGHIJKLMNOPQRSTUVWXYZ0002\r\n00037 "      "15                               abcdefghijklmnopqrstuvwxyz0002\r\n00038 16                               "      "lars.schmeiser@194.1.12.111\r\n00039 17 \r\n00040 18 \r\n00041 19 \r\n"      "00042 20 \r\n00043 21 1         2         3         4         5         6         7         8         9         0\r\n";      do{      test_info<char>::set_info(__FILE__, __LINE__,          "(.*\\r\\n){3}.* abcdefghijklmnopqrstuvwxyz.*\\r\\n",          perl, big_text, match_default|match_not_dot_newline,          make_array(753, 1076, 934, 1005, -2, 2143, 2466, 2324, 2395, -2, -2));      test(char(0), test_regex_search_tag());   }while(0);#if !defined(BOOST_NO_WREGEX) && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)   do{      std::string st(big_text);      test_info<wchar_t>::set_info(__FILE__, __LINE__,          L"(.*\\r\\n){3}.* abcdefghijklmnopqrstuvwxyz.*\\r\\n",          perl, std::wstring(st.begin(), st.end()), match_default|match_not_dot_newline,          make_array(753, 1076, 934, 1005, -2, 2143, 2466, 2324, 2395, -2, -2));      test(char(0), test_regex_search_tag());   }while(0);#endif}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?