python - 在字符串中查找匹配的左/右大括号索引
问题描述
我想在这样的字符串的 for 循环中找到相应大括号的索引,例如:"(foo(bar))"
.
起初我是这样做的,但它总是匹配最右边/最左边的大括号,因此它不适用于多个大括号:
for item in string:
if item == "(":
matchingbraceindex = string.find(")", item)
elif item == ")":
matchingbraceindex = string.rfind("(", 0, item)
然后我考虑计算大括号,但我仍然无法获得索引,只是其他大括号中的位置,我想不出从中提取索引的方法。
解决方案
使用堆栈。推动左括号,直到遇到右括号,此时您找到了最里面的一对。从你的问题中不清楚你在寻找什么输出,所以我不能说如何处理这些字母。
推荐阅读
- node.js - 在猫鼬中调用 document.save() 函数后,如何取回更新的文档?
- r - 使用 ggplot 和 ggplotly 进行多面绘图时出现在绘图之外的字母
- tensorflow - Tensorflow Extended(TFX) 代码在 Google Colab 上运行良好,但在本地机器上运行时抛出错误
- python - 如何使用 buildozer 在 Windows 10 上为 ios 编译 python kivy 应用程序?
- python-3.x - 如何将数据框行复制并粘贴到网页文本区域字段中
- excel - 更改格式的日期字段和公式
- html - ejs中的for循环
- laravel - Heroku 中的 Vue + Laravel
- tfs - TFS 2017 deploying to target machine: Agent running under highly privileged account Vs. custom environment variables to store user/pass
- javascript - Blob URL 是否可以被视为防止用户从开发人员控制台内复制图像的解决方案?