提取嵌套括号内的字符串

洛伦佐卡斯蒂略

我需要像这样从嵌套括号中提取字符串:

[ this is [ hello [ who ] [what ] from the other side ] slim shady ]

结果(顺序无关紧要)

This is slim shady
Hello from the other side
Who 
What

请注意,该字符串可以有N个括号,并且它们始终有效,但可以嵌套或可以不嵌套。另外,字符串不必以方括号开头。

我在网上找到的针对类似问题的解决方案建议使用正则表达式,但是我不确定在这种情况下是否可以使用正则表达式。

我正在考虑实现类似于我们检查字符串是否具有所有有效括号的方法:

遍历字符串。如果我们看到[我们将其索引压入堆栈,如果我们看到],则从那里子串到当前位置。

但是,我们需要从原始字符串中删除该子字符串,以免将其作为任何输出的一部分。因此,我在考虑创建一个LinkedList而不是仅仅将索引推送到堆栈中,并且当我们找到一个[时,我们将该Node插入LinkedList上。这将使我们能够轻松地从LinkedList中删除子字符串。

这是一个好方法还是有一个更清洁,已知的解决方案?

编辑:

'[ this is [ hello [ who ] [what ] from the other [side] ] slim shady ][oh my [g[a[w[d]]]]]'

应该退货(顺序无关紧要)

this is slim shady
hello from the other
who 
what 
side
oh my
g
a
w
d

空白无所谓,事后将其删除很简单。重要的是能够区分方括号内的不同内容。通过用换行符将它们分开,或具有字符串列表。

尼扎姆·穆罕默德(Nizam Mohamed)

此代码按字符扫描文本,并list在每次打开时将一个空值推送到堆栈上,[并在list每次关闭时弹出从堆栈中最后一次推送的内容]

text = '[ this is [ hello [ who ] [what ] from the other side ] slim shady ]'

def parse(text):
    stack = []
    for char in text:
        if char == '[':
            #stack push
            stack.append([])
        elif char == ']':
            yield ''.join(stack.pop())
        else:
            #stack peek
            stack[-1].append(char)

print(tuple(parse(text)))

输出;

(' who ', 'what ', ' hello   from the other side ', ' this is  slim shady ')
(' who ', 'what ', 'side', ' hello   from the other  ', ' this is  slim shady ', 'd', 'w', 'a', 'g', 'oh my ')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Regexextract提取括号内字符串中的数字

来自分类Dev

如何提取R中括号内的字符串匹配?

来自分类Dev

方括号内的Impala / Hive字符串提取

来自分类Dev

从字符串中提取方括号内的数字

来自分类Dev

如何提取括号之间的子字符串,同时忽略 Python 中嵌套括号之间的子字符串?

来自分类Dev

提取括号之间的字符串

来自分类Dev

提取括号之间的字符串

来自分类Dev

提取不在括号之间的字符串

来自分类Dev

解析带嵌套括号的字符串

来自分类Dev

用嵌套括号解析字符串

来自分类Dev

从Excel VBA中的字符串中提取最后一个括号内的字符

来自分类Dev

提取方括号内的2个文本之间的字符串

来自分类Dev

如何在xslt中的方括号内提取字符串

来自分类Dev

如何使用lookbehind和lookahead零长度断言提取括号内的字符串?

来自分类Dev

使用正则表达式提取不在方括号内的字符串模式

来自分类Dev

括号内的分割字符串

来自分类Dev

在括号内获取字符串

来自分类Dev

从括号内的字符串中提取子字符串,其中子字符串可能有空格

来自分类Dev

提取嵌套括号内的数据

来自分类Dev

使用sed提取大括号中的子字符串

来自分类Dev

如何使用R提取方括号之外的字符串?

来自分类Dev

从复杂的括号系统中提取字符串

来自分类Dev

使用c#提取括号中的字符串

来自分类Dev

如何提取方括号之间的字符串

来自分类Dev

查找嵌套括号中的所有字符串

来自分类Dev

检索嵌套在字符串中的每个括号的内容

来自分类Dev

替换包含特定字符的括号内的字符串

来自分类Dev

除了括号内,如何使用Python中的正则表达式从字符串中提取数字?

来自分类Dev

如何从带有括号的字符串中提取字符串?

Related 相关文章

  1. 1

    使用Regexextract提取括号内字符串中的数字

  2. 2

    如何提取R中括号内的字符串匹配?

  3. 3

    方括号内的Impala / Hive字符串提取

  4. 4

    从字符串中提取方括号内的数字

  5. 5

    如何提取括号之间的子字符串,同时忽略 Python 中嵌套括号之间的子字符串?

  6. 6

    提取括号之间的字符串

  7. 7

    提取括号之间的字符串

  8. 8

    提取不在括号之间的字符串

  9. 9

    解析带嵌套括号的字符串

  10. 10

    用嵌套括号解析字符串

  11. 11

    从Excel VBA中的字符串中提取最后一个括号内的字符

  12. 12

    提取方括号内的2个文本之间的字符串

  13. 13

    如何在xslt中的方括号内提取字符串

  14. 14

    如何使用lookbehind和lookahead零长度断言提取括号内的字符串?

  15. 15

    使用正则表达式提取不在方括号内的字符串模式

  16. 16

    括号内的分割字符串

  17. 17

    在括号内获取字符串

  18. 18

    从括号内的字符串中提取子字符串,其中子字符串可能有空格

  19. 19

    提取嵌套括号内的数据

  20. 20

    使用sed提取大括号中的子字符串

  21. 21

    如何使用R提取方括号之外的字符串?

  22. 22

    从复杂的括号系统中提取字符串

  23. 23

    使用c#提取括号中的字符串

  24. 24

    如何提取方括号之间的字符串

  25. 25

    查找嵌套括号中的所有字符串

  26. 26

    检索嵌套在字符串中的每个括号的内容

  27. 27

    替换包含特定字符的括号内的字符串

  28. 28

    除了括号内,如何使用Python中的正则表达式从字符串中提取数字?

  29. 29

    如何从带有括号的字符串中提取字符串?

热门标签

归档