test3.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 197 行

HPP
197
字号
///////////////////////////////////////////////////////////////////////////////// test3.hpp////  Copyright 2008 Eric Niebler. Distributed under the Boost//  Software License, Version 1.0. (See accompanying file//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#include "./test.hpp"///////////////////////////////////////////////////////////////////////////////// get_test_cases//template<typename BidiIterT>boost::iterator_range<xpr_test_case<BidiIterT> const *> get_test_cases(){    typedef typename boost::iterator_value<BidiIterT>::type char_type;    typedef xpr_test_case<BidiIterT> xpr_test_case;    typedef basic_regex<BidiIterT> regex_type;    static char_type const *nilbr = 0;    static xpr_test_case const test_cases[] =    {        xpr_test_case        (            "test41"          , L("foobarFOObarfoo")          , regex_type((s1= icase(L("FOO"))) >> (s2= -*_) >> s1)          , backrefs(L("foobarFOObarfoo"), L("foo"), L("barFOObar"), nilbr)        )      , xpr_test_case        (            "test42"          , L("foobarFOObarfoo")          , regex_type((s1= icase(L("FOO"))) >> (s2= -*_) >> icase(s1))          , backrefs(L("foobarFOO"), L("foo"), L("bar"), nilbr)        )      , xpr_test_case        (            "test42.1"          , L("fooFOOOFOOOOObar")          , regex_type(+(s1= L("foo") | icase(s1 >> L('O'))))          , backrefs(L("fooFOOOFOOOO"), L("FOOOO"), nilbr)        )      , xpr_test_case        (            "test43"          , L("zoo")          , regex_type(bos >> set[range(L('A'),L('Z')) | range(L('a'),L('m'))])          , no_match        )      , xpr_test_case        (            "test44"          , L("Here is a URL: http://www.cnn.com. OK?")          , regex_type((s1= L("http") >> !as_xpr(L('s')) >> L(":/") | L("www."))                        >> +set[_w | (set=L('.'),L('/'),L(','),L('?'),L('@'),L('#'),L('%'),L('!'),L('_'),L('='),L('~'),L('&'),L('-'))]                        >> _w)          , backrefs(L("http://www.cnn.com"), L("http:/"), nilbr)        )      , xpr_test_case        (            "test45"          , L("fooooooooo")          , regex_type(L('f') >> repeat<2,5>(L('o')))          , backrefs(L("fooooo"), nilbr)        )      , xpr_test_case        (            "test46"          , L("fooooooooo")          , regex_type(L('f') >> -repeat<2,5>(L('o')))          , backrefs(L("foo"), nilbr)        )      , xpr_test_case        (            "test45.1"          , L("fooooooooo")          , regex_type(L('f') >> repeat<2,5>(L('o')) >> L('o'))          , backrefs(L("foooooo"), nilbr)        )      , xpr_test_case        (            "test46.1"          , L("fooooooooo")          , regex_type(L('f') >> -repeat<2,5>(L('o')) >> L('o'))          , backrefs(L("fooo"), nilbr)        )      , xpr_test_case        (            "test47"          , L("{match this}")          , regex_type(bos >> L('{') >> *_ >> L('}') >> eos)          , backrefs(L("{match this}"), nilbr)        )      , xpr_test_case        (            "test48"          , L("+-+-")          , regex_type(+(set=L('+'),L('-')))          , backrefs(L("+-+-"), nilbr)        )      , xpr_test_case        (            "test49"          , L("+-+-")          , regex_type(+(set=L('-'),L('+')))          , backrefs(L("+-+-"), nilbr)        )      , xpr_test_case        (            "test50"          , L("\\05g-9e")          , regex_type(+set[_d | L('-') | L('g')])          , backrefs(L("05g-9"), nilbr)        )      , xpr_test_case        (            "test51"          , L("\\05g-9e")          , regex_type(+set[_d | L('-') | L('g')])          , backrefs(L("05g-9"), nilbr)        )      , xpr_test_case        (            "test52"          , L("\\05g-9e")          , regex_type(+set[L('g') | as_xpr(L('-')) | _d])          , backrefs(L("05g-9"), nilbr)        )      , xpr_test_case        (            "test53"          , L("\\05g-9e")          , regex_type(+set[L('g') | as_xpr(L('-')) | _d])          , backrefs(L("05g-9"), nilbr)        )      , xpr_test_case        (            "test54"          , L("aBcdefg\\")          , regex_type(icase(+range(L('a'),L('g'))))          , backrefs(L("aBcdefg"), nilbr)        )      , xpr_test_case        (            "test55"          , L("ab/.-ba")          , regex_type(+range(L('-'),L('/')))          , backrefs(L("/.-"), nilbr)        )      , xpr_test_case        (            "test56"          , L("ab+,-ba")          , regex_type(+range(L('+'),L('-')))          , backrefs(L("+,-"), nilbr)        )      , xpr_test_case        (            "test56.1"          , L("aaabbbb----")          , regex_type(+range(L('b'),L('b')))          , backrefs(L("bbbb"), nilbr)        )      , xpr_test_case        (            "test57"          , L("foobarFOO5")          , regex_type(icase((s1= L("foo")) >> *_ >> L('\15')))          , no_match        )      , xpr_test_case        (            "test58"          , L("Her number is 804-867-5309.")          , regex_type(repeat<2>(repeat<3>(_d) >> L('-')) >> repeat<4>(_d))          , backrefs(L("804-867-5309"), nilbr)        )      , xpr_test_case        (            "test59"          , L("foo")          , regex_type(L('f') >> +as_xpr(L('o')))          , backrefs(L("foo"), nilbr)        )      , xpr_test_case        (            "test60"          , L("fooFOObar")          , regex_type(icase(+(s1= L("foo")) >> L("foobar")))          , backrefs(L("fooFOObar"), L("foo"), nilbr)        )    };    return boost::make_iterator_range(test_cases);}

⌨️ 快捷键说明

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