Cha*_*ory 8 regex pcre nested brackets
因此,我对全新的正则表达式世界完全陌生.基本上,我正在使用Gedit API创建一个新的自定义语言规范(从C#派生)用于语法高亮(对于Byond的DM).在DM中的转义字符中,您必须使用[variable]作为转义语法,这很简单.但是,它也可以嵌套,例如[array/list [index]].(它可以无限嵌套.)我已经查看了其他问题,当他们询问嵌套括号时,它们只表示嵌套,而在这种情况下它可能是/或.
我尝试了几次尝试:
\[.*\]产生结果"测试[测试[测试]测试]测试[测试]测试"\[.*?\]产生结果"测试[测试[测试]测试]测试[测试]测试"\[(?:.*)\] 产生结果"测试[测试[测试]测试]测试[测试]测试"\[(?:(?!\[|\]).)*\] 产生结果"测试[测试[测试]测试]测试[测试]测试".这来自/sf/answers/670668491/,但如上所述,只有在内部没有括号时才匹配.显然我不知道我在这里做的更复杂的匹配,但至少我了解更多来自其他来源的基本操作.
在阅读GtkSourceView 的规范参考后,我发现它专门使用了 PCRE。然后我用它作为线索。
深入研究并通过反复试验,我让它可以使用:
\[(([^\[\]]*|(?R))*)\]
我希望这对将来的其他人有帮助。