gpt4 book ai didi

regex - 在 VB.Net 源代码中获取注释的正则表达式

转载 作者:行者123 更新时间:2023-12-01 09:11:43 26 4
gpt4 key购买 nike

我在 vb.net 中有一个语法高亮功能。例如,我使用正则表达式来匹配“!IF”,然后将其着色为蓝色。在我试图弄清楚如何发表评论之前,这很完美。

我写这篇评论的语言可以是如果该行以单引号 ' 开头,或者如果该行中的任何地方有两个单引号

'this line is a comment
!if StackOverflow = "AWESOME" ''this is also a comment

现在我知道如何查看它是否以单行 ^' 开头,但我需要将字符串一直返回到行尾,这样我就可以将整个注释涂成绿色,而不仅仅是单引号。

您不需要该代码,但这里有一个片段,以防万一。

    For Each pass In frmColors.lbRegExps.Items
RegExp = System.Text.RegularExpressions.Regex.Matches(LCase(rtbMain.Text), LCase(pass))
For Each RegExpMatch In RegExp
rtbMain.Select(RegExpMatch.Index, RegExpMatch.Length)
rtbMain.SelectionColor = ColorTranslator.FromHtml(frmColors.lbHexColors.Items(PassNumber))
Next
PassNumber += 1
Next

最佳答案

类似的东西:

^(\'[^\r\n]+)$|(''[^\r\n]+)$

应该给你第 n° 1 组中的注释行(部分行)

其实你甚至不需要组

^\'[^\r\n]+$|''[^\r\n]+$

如果它发现了什么,那就是评论。

"(^'|'').*$"

如果仅逐行应用(可能是您的情况),Boaz 提到的将起作用。
对于多行检测,您必须确保避免使用“Dotall”模式,其中“.”也代表\r 和\n 字符。否则,该模式将完全匹配您的两条线。

这就是为什么我通常更喜欢 [^\r\n] 而不是 '.':它避免了对模式模式的任何依赖。即使在 'Dotall' 模式下,它仍然有效并且避免在下一行尝试任何匹配。

关于regex - 在 VB.Net 源代码中获取注释的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/311888/

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