我在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