Regex Pattern帮助:在嵌套ASP.NET Eval时查找HTML模式?

时间:2016-01-02 02:31:45

标签: html asp.net regex

http://regexr.com/3cgju

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") %>">

帮助?

1 个答案:

答案 0 :(得分:1)

请尝试 PCRE

<(([^<>]|(?R))*)>

演示:https://regex101.com/r/tE8nJ1/2

这适用于 .NET

(?'o'<)(.*)(?'-o'>)+

演示:link

或者:

(?'o'<)([^<>]*)(?'-o'>)+

限制捕获组,如果不在行之间使用换行符。