[Bug libgcc/58886] New: regex with (?s) (valid in Java and boost) yields regex_error
bremende55 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Oct 26 11:59:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58886
Bug ID: 58886
Summary: regex with (?s) (valid in Java and boost) yields
regex_error
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgcc
Assignee: unassigned at gcc dot gnu.org
Reporter: bremende55 at gmail dot com
regex with (?s) (valid in Java and boost) yields regex_error
(?s) ist the 'dot-matches-all" match mode, i.e. \n ist treated as normal char
see example:
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string multilinecomment("/* text\n\n\n */");
// execution of the next line gives regex_error !!
std::string result = std::regex_replace(multilinecomment,
std::regex("(?s)/\\*.*?\\*/"), "replacement");
std::cout << result << std::endl;
}
// The same code DOES WORK with BOOST:
// #include <iostream>
// #include<boost/regex.hpp>
// #include <string>
// int main() {
// std::string multilinecomment("/* text\n\n\n */");
// std::string result = boost::regex_replace(multilinecomment,
// boost::regex("(?s)/\\*.*?\\*/"), "replacement");
// std::cout << result << std::endl; // replacement
// }
More information about the Gcc-bugs
mailing list