示例字符串:
std::string sentence = "Hello {Bobby}, hows {Johns}?."
我希望能够使用boost::regex捕获花括号内的所有内容,任何帮助或指导都将不胜感激。
该字符串可以包含{bobby | john | cindy}或{bobby || cindy}或{{bobby}},其中将是{bobby}。我正在尝试找出正则表达式。
谢谢。
最佳答案
总体方法和代码示例为described here。
您需要的正则表达式似乎是:
([^{}]*\{([^{}]*)\})+
除非字符串使用正确配对的非嵌套花括号,否则此正则表达式将完全不匹配。如果匹配,则可以使用
regex_iterator
处理每个匹配项中的第二个子组。关于c++ - 如何在C++中使用boost::regex捕获字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11319305/