Pattern = ((<\/?[\w\s="/.':;#-\/]+>)|(<\%@[\s\S]+\"\s%>))
将此作为测试语法使用时:
<%@ Page Language="C#" %>
<td class="c1 c2 c3" colspan="2">
lorem ipsum
<div class="d1" id="div2" attrid="<%# Eval("CategoryID") %>">
testing 123
</div>
asdf
</td>
这与上面添加的行号相同,所以我可以更轻松地提出我的问题:
1. <%@ Page Language="C#" %>
2. <td class="c1 c2 c3" colspan="2">
3. lorem ipsum
4. <div class="d1" id="div2" attrid="<%# Eval("CategoryID") %>">
5. testing 123
6. </div>
7. asdf
8. </td>
RegEx模式正确匹配第1,2,6和8行,但仅部分匹配第4行: 它只匹配第4行的这一部分:
<%# Eval("CategoryID") %>
但我希望它与第4行的整行相匹配:
<div class="d1" id="div2" attrid="<%# Eval("CategoryID") %>">
帮助?
答案 0 :(得分:1)
请尝试 PCRE :
<(([^<>]|(?R))*)>
演示:https://regex101.com/r/tE8nJ1/2
这适用于 .NET :
(?'o'<)(.*)(?'-o'>)+
演示:link
或者:
(?'o'<)([^<>]*)(?'-o'>)+
限制捕获组,如果不在行之间使用换行符。