И все-таки я нашел решение. «Ну не может быть, чтобы его не было», — сказал я себе. Я бы в жизни не додумался до такой строки, но подсказала программа RegexBuddy. Просто роскошная штука для работы с регулярными выражениями.
Итак, вот так это делается:
- Код: Выделить всё
.Pattern = "('[^_\r\n]*+(?:_\r?+\n?+[^_\r\n]*+)*+)"
txtCode.Text = .Replace(txtCode.Text, "[COLOR=""Green""]$1[/COLOR]")
Работает и для однострочного и для многострочного комментария.
Одно замечание. Не будет работать, если RegExp создавать через CreateObject. Нужно подключить библиотеку
Microsoft VBScript Regular Expressions 5.5 и объявлять так:
- Код: Выделить всё
Dim oRegExp As RegExp
Set oRegExp = New RegExp
Но это еще не конец, потому что если одинарная кавычка будет использована внутри строки, то это тоже будет считаться комментарием. Будем думать.