解析具有括号和逗号分隔值的字符串
Posted
技术标签:
【中文标题】解析具有括号和逗号分隔值的字符串【英文标题】: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 不包含任何内容
您可以将其视为文件系统 在具有 () 的输入字母上是文件夹 剩下的就是文件 解析此字符串的正确方法是什么 正则表达式、堆栈函数或简单的字符串解析函数?以及如何?
【问题讨论】:
一个循环和一个堆栈来跟踪你的嵌套程度应该足够了。 如果你想要一个列表中的结果,一个带有非本地列表的递归调用堆栈是要走的路。 只要找到 '(' 就输入一个新的函数调用,并确保在 ')' 处退出。这不是火箭科学。 【参考方案1】:我认为简单的堆栈和字符串方法就足够了 遍历字符串上的每个字符 创建一个名为 url 的堆栈 当你看到 "(" ")" 或 "," 字符解析它 当你看到 "(" 字符时,将 x( x 推入堆栈 当你看到“)”字符弹出堆栈
您将拥有一个令牌,其 url 指向它所属的位置
【讨论】:
以上是关于解析具有括号和逗号分隔值的字符串的主要内容,如果未能解决你的问题,请参考以下文章