当前位置: 代码迷 >> ASP.NET >> [正则表达式]高分, 怎么书写(包含匹配)的正则表达式
  详细解决方案

[正则表达式]高分, 怎么书写(包含匹配)的正则表达式

热度:6835   发布时间:2013-02-25 00:00:00.0
[正则表达式]高分求助, 如何书写(包含匹配)的正则表达式
[正则表达式]高分求助, 如何书写(包含匹配)的正则表达式

搜了半天, 也没找出国所以然来

源串:
<table>
  <tr><td>aaaaa</td></tr>
  <tr><td>aabcb</td></tr>
  <tr><td>bbbb</td></tr>
</table>

目标:
我要匹配, 包含abc的<tr>到</tr> 之间的内容, 正则咋写, 拾到半天搞不定(也就是说,我要匹配第二个tr之间的内容含<tr>)


------解决方案--------------------------------------------------------
(?i)<tr>.*?abc.*?</tr>
------解决方案--------------------------------------------------------
C# code
void Main(){ string hcontent2=@"<table>  <tr><td>aaaaa</td></tr>  <tr><td>aabcb</td></tr>  <tr><td>bbbb</td></tr></table>";foreach(Match m in Regex.Matches(hcontent2, @"(?i)<tr>.*?abc.*?</tr>"))    {    Console.WriteLine(m.Value);     }    /*     <tr><td>aabcb</td></tr    */}
------解决方案--------------------------------------------------------
目标为什么是:
<tr>
Tar_Candle
</tr>
------解决方案--------------------------------------------------------
C# code
void Main(){    string hcontent2=@"<table><tr>12343<tr><tr>3454afsadf35<tr></table><table><tr><table><tr>Tar_Candle</tr></table></tr><tr>Tar_Abc</tr><tr>aaa</tr></table><table><tr>adaf</tr><tr>xys</tr></table>";foreach(Match m in Regex.Matches(hcontent2, @"(?is)<tr>((?!</?tr>).)*?Candle((?!</tr>).)*?</?tr>"))    {    Console.WriteLine(m.Value);     }    /*     <tr>    Tar_Candle    </tr>    */}