【发布时间】:2019-03-15 05:41:18
【问题描述】:
s = "[ab[cd]]fg[hi]"
我想得到子字符串[ab[cd]]
真正的问题是可以有任意数量的开括号和闭括号。供参考this 是我要解决的问题。
如果我使用re.search("\[(.*)\]", s),它匹配最后一个]
如果我使用re.search("\[(.*?)\]", s),它会停在第一个]
我希望正则表达式匹配 [ab[cd]] 字符串 [ab[cd]]fg[hi] 并匹配 [ab[cd[ef]]] 字符串 [ab[cd[ef]]]f[hi]
有什么想法吗?
谢谢
【问题讨论】:
-
\[\w+\[\w+\]\]怎么样? -
我不知道它可能包含多少嵌套的左括号和右括号。
-
那么,选择
[ab[cd]]和fg[hi]或[ab[cd]]fg[hi]之间的区别因素是什么? -
当我遍历字符串时,如果我遇到一个'[',那么我需要找到它匹配的']并做一些处理。这是一个编程问题:leetcode.com/problems/decode-string
-
我的建议是将搜索乘数和相应的“字符串”分开,然后使用递归替换出现的位置。我编写了一个工作示例,它似乎可以工作。
标签: python regex python-3.x string