簡體   English   中英

正則表達式多行

[英]Regex multiline

我正在嘗試通過富文本框突出顯示“ <%”和“%>”之間的所有內容。 (例如,將每個javascript代碼都顯示為藍色)

到目前為止,所有其他突出顯示功能都可以使用,但是這些都是單行突出顯示。 我已經找到了執行多行代碼的正確代碼,但是我認為我的正則表達式在這一點上是錯誤的。

有什么建議么?

使用的正則表達式:

@"\\<\\%(.*?)\\%\\>"

示例代碼:

textextextext
<%
this is javascript code
%>
textextextextextextextext

預期結果:

<% 
this is javascript code 
%>

您需要添加DOTALL( s )修飾符,並且也不需要在正則表達式中轉義<%符號。 (?s)修飾符可使正則表達式中的點也匹配換行符。

(?s)<%.*?%>

DEMO

C#代碼應該是

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);
}

IDEONE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM