C++ 正規表現で括弧をマッチング!基本と実践
C++では、括弧をマッチングするために正規表現を使用することができます。以下は、括弧を含む文字列をマッチングするためのサンプルコードです。
#include <iostream>
#include <regex>
int main() {
std::string str = "This is a (sample) string with (parentheses)";
std::regex regex("\\([^()]*\\)");
std::smatch match;
while (std::regex_search(str, match, regex)) {
for (auto m : match) {
std::cout << m << std::endl;
}
str = match.suffix().str();
}
return 0;
}
上記のコードでは、括弧内の内容に一致する正規表現 \\([^()]*\\) を定義しています。次に、std::regex_search関数を使用して、文字列内で正規表現に一致する部分を検索し、std::smatchオブジェクトを使用してマッチング結果を保存します。最後に、マッチングされた内容を出力します。
注意:正規表現内の ( ) は \\( \\) にエスケープする必要があります。これにより、通常の文字として処理され、グループの記号として扱われなくなります。