所以我对 Regex 的压倒性世界完全陌生。基本上,我使用 Gedit API 创建一个新的自定义语言规范(源自 C#),用于语法高亮(用于 Byond 的 DM)。在 DM 中的转义字符中,您必须使用[variable]作为转义语法,这很简单。但是,它也可以嵌套,例如[array/list[index]]。(它可以无限嵌套。)我已经查看了其他问题,当他们询问嵌套括号时,它们仅表示完全嵌套,而在这种情况下它可能是非此即彼。
我尝试过的几次尝试:
\[.*\]
产生结果“测试[测试[测试]测试]测试[测试]测试”\[.*?\]
产生结果“测试[测试[测试]测试]测试[测试]测试”\[(?:.*)\]
产生结果“测试[测试[测试]测试]测试[测试]测试”\[(?:(?!\[|\]).)*\]
产生结果“测试[测试[测试]测试]测试[测试]测试”。这源自https://stackoverflow.com/a/9580978/2303154但如上所述,仅在内部没有括号时才匹配。
显然,我不知道我在更复杂的匹配中在这里做什么,但至少我从其他来源了解了更多的基本操作。