私はregex101でJavasScript正規表現を作成し、テストしました。それをC++(visual studio 2013)に変換した後、std :: regex_search()はfalseを返します。JavaScriptの正規表現がC++で一致しない
私の間違いはありますか?
ワーキングJavaScriptの正規表現:
struct[\s]+([\w]+).+?public[\s]+([\w]+)[\s\S]+?\{([\s\S]+?)\};
失敗C++の正規表現(同じ文字列で):
std::regex rgxGetStructs("struct[\\s]+([\\w]+).+?public[\\s]+([\\w]+)[\\s\\S]+?\\{([\\s\\S]+?)\\};", std::regex_constants::ECMAScript);
const char* test = "struct mySTruct : public boss { int test; };";
bool chk = std::regex_search(std::string(test), rgxGetStructs);
'R" rx(struct [\ s] +([\ w] +)のような生の文字列リテラルを試しましたか?+ public [\ s] +([\ w] +)[\ s \ S ] +?\ {([\ s \ S] +?)\};)rx "'?また、それがいかに正確に失敗しているか説明してください。 –
@πάνταῥεῖそれは何の構文ですか? – qxz
@qxz [生の文字列リテラル](http://en.cppreference.com/w/cpp/language/string_literal) –