正規表現を user-defined literals
[ソース]
#include <boost/regex.hpp> #include <string> boost::regex operator "" _r(char const* c_str, std::size_t len){ return boost::regex(c_str); } int main(){ std::string str = "12-34-56"; boost::smatch what; boost::regex_search(str, what, R"(^\d*)"_r); std::cout << what.str() << std::endl; boost::regex_search(str, what, R"(\-\d*\-)"_r); std::cout << what.str() << std::endl; boost::regex_search(str, what, R"(\d*$)"_r); std::cout << what.str() << std::endl; return 0; }
[出力]
12 -34- 56
raw string literals との組み合わせで見やすくなっている気がする。