(例)「int」「double」「char[20]」などの文字列に対して、 (int)、(double)、(char)[(20)]のように、型名と配列数をサブグループとして取り出す正規表現 ややこしいのは"\\["、"\\d+"、"\\]"の部分。 C/C++の文字列でバックスラッシュ一文字を表現すると"\\"になり、 正規表現のメタ文字である'['をエスケープするためにこれを前に付けて "\\["となっている。その他も同様。 C++11で追加された生文字列リテラル「R"(〜)"」を使うと次のようにも書ける。 https://ezoeryou.github.io/cpp-book/C++11-Syntax-and-Feature.xhtml#raw.string.literal #include <regex> #include <iostream> using std::string;
![C++11で正規表現(std::regex)を使う - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2beff896f6b7ff4339f75fd0cc58a9f380cd72ce/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QyUyQiUyQjExJUUzJTgxJUE3JUU2JUFEJUEzJUU4JUE2JThGJUU4JUExJUE4JUU3JThGJUJFJUVGJUJDJTg4c3RkJTNBJTNBcmVnZXglRUYlQkMlODklRTMlODIlOTIlRTQlQkQlQkYlRTMlODElODYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTc3NTkyMzJmZjA1ODU3ZmQ3M2E1YTUzNTZhZTY4YTZk%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrbWlrbXkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTIxMWNhMmJkMjI3ZjMwZTNkMjcyM2I2NzYyMDA5NjBh%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dd1569764595a91ffe735a1cb96f09ac1)