为开始和结束标记解析字符串

时间:2015-11-13 14:05:37

标签: c++ regex string c++11

我们说我有以下字符串:

  • "这[color = RGB]是[\ color]一个字符串。"
  • "这[color = RGB] [粗体]是[\ bold] [\ color]另一个字符串。"

我正在寻找的是解析字符串以提取标记信息然后重新构建没有标记的原始字符串的好方法。 标签信息将在文本渲染过程中使用。

显然我可以通过直接使用字符串(find / substr / replace等)来实现目标,但是我问是否有其他方式更清洁,例如使用正则表达式。

注意:

  • 我需要的标签非常少,但有可能将它们嵌套(只有不同​​类型)。
  • 无法使用Boost。

1 个答案:

答案 0 :(得分:0)

根据字符串的复杂程度,可能会有一个非常简单的答案。 (而且我正确地理解你,即你只是希望得到清理字符串,而不是实际提取标签。)只需删除所有标签。取代

\[.*?]
什么也没有。 Example here

现在,如果你的字符串应该能够包含类似标签的对象,那么这可能不起作用。

此致