Я пытаюсь выделить все между "<%" и "%>" с помощью richtextbox. (например, помещая каждый код javascript в синий цвет)
Каждая другая функция подсветки работает до сих пор, но это основные моменты. Я нашел правильный код, чтобы делать многостроки, но я думаю, что мое регулярное выражение ошибочно на данный момент.
Какие-либо предложения?
Используемое регулярное выражение:
@"\<\%(.*?)\%\>"
пример кода:
textextextext
<%
this is javascript code
%>
textextextextextextextext
желаемый результат:
<%
this is javascript code
%>
Вам нужно добавить модификатор DOTALL (s
), а также вам не нужно выходить из <
, %
символов в регулярном выражении. (?s)
делает точку в регулярном выражении так же, как и символ новой строки.
(?s)<%.*?%>
Код С# был бы,
String input = @"textextextext
<%
this is javascript code
%>
textextextextextextextext";
Regex rgx = new Regex(@"(?s)<%.*?%>");
foreach (Match m in rgx.Matches(input))
{
Console.WriteLine(m.Groups[0].Value);
}