gpt4 book ai didi

regex - 正则表达式(普通或嵌套括号)

转载 作者:行者123 更新时间:2023-12-04 08:52:39 25 4
gpt4 key购买 nike

所以我对正则表达式的压倒性世界完全陌生。基本上,我正在使用 Gedit API 创建一个新的自定义语言规范(源自 C#)用于语法突出显示(用于 Byond 的 DM)。在 DM 中的转义字符中,您必须使用 [变量] 作为转义语法,这很简单。但是,它也可以嵌套,例如 [数组/列表[索引]] 例如。 (它可以无限嵌套。)我已经查看了其他问题,当他们询问嵌套括号时,它们仅表示完全嵌套,而在这种情况下,它可能是/或。

我尝试过的几次尝试:

  • \[.*\]产生结果 "Test [Test[Test] Test]Test[Test] Test"
  • \[.*?\]产生结果“测试 [测试[测试] 测试]测试 [测试] 测试”
  • \[(?:.*)\] produces结果 "Test [Test[Test] Test]Test[Test] Test"
  • \[(?:(?!\[|\]).)*\] produces结果“测试[测试[测试]测试]测试[测试]测试”。这源自 https://stackoverflow.com/a/9580978/2303154但就像上面提到的,只有在里面没有括号时才匹配。

  • 显然,我不知道在更复杂的匹配中我在做什么,但至少我从其他来源了解了更多的基本操作。

    最佳答案

    来自 @Chaos7Theory :

    阅读后 GtkSourceView's Specification Reference ,我发现它专门使用 PCRE。然后我用它作为线索。

    深入研究并通过反复试验,我得到了它的使用:

    \[(([^\[\]]*|(?R))*)\]

    我希望这会在将来对其他人有所帮助。

    关于regex - 正则表达式(普通或嵌套括号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406512/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com