У меня есть функция подсветки синтаксиса в 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