【问题标题】:parsing a string which has parenthesis and comma seperated values解析具有括号和逗号分隔值的字符串
【发布时间】:2015-12-02 02:45:00
【问题描述】:

我有一个这样的字符串:

string astr = "a(b,c,u),d,e(f),g(),h,i(j(k,l,m(n))),r";
  • a 包含 b,c,u
  • e 包含 f
  • i 包含 j
  • j 包含 k,l,m
  • m 包含 n
  • r 不包含任何内容

您可以将其视为文件系统
在具有 () 的输入字母上是文件夹
剩下的就是文件
解析此字符串的正确方法是什么
正则表达式、堆栈函数或简单的字符串解析函数?以及如何?

【问题讨论】:

  • 一个循环和一个堆栈来跟踪你的嵌套程度应该足够了。
  • 如果你想要一个列表中的结果,一个带有非本地列表的递归调用堆栈是要走的路。
  • 只要找到 '(' 就输入一个新的函数调用,并确保在 ')' 处退出。这不是火箭科学。

标签: c++ regex string parsing


【解决方案1】:

我认为简单的堆栈和字符串方法就足够了 遍历字符串上的每个字符 创建一个名为 url 的堆栈 当你看到 "(" ")" 或 "," 字符解析它 当你看到 "(" 字符时,将 x( x 推入堆栈 当你看到“)”字符弹出堆栈

您将拥有一个令牌,其 url 指向它所属的位置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2017-05-15
    • 2019-12-04
    相关资源
    最近更新 更多