2014-05-22 57 views
0
... <tr class="GridRow_Business"> **[important info]** </tr> ... 

我如何可以匹配一切除了[important info]负正则表达式匹配去除不需要的代码

我想:它

(?!\{)Row_Business">(.*?)</tr>(?!\}) 

和类似的变化,但没有运气。

+0

我不确定要得到你想要的。用'\ 1'替换'(?s)。*(<重要信息>)。*'是否有用? – Robin

回答

0
^[^<]*(<tr[^>]+Row_Business\">)([^<]+)(</tr>) 

这匹配了3组中的所有内容。

  • 1组开始标签匹配
  • 2组相匹配的开始和结束标记
  • 组3结束标记

你可以因此得到你需要\1\3

什么比赛之间的任何

编辑

基于在评论中refiddle例如正则表达式现在是:

(<tr[^>]+Row_Business\">)(?:[\n\t]*.*[\n\t]*)*?(</tr>) 

这2组相匹配的一切。第二组圆括号现在是一个非捕获组,并且在该组之后使该组不会变得非贪婪。再次,基于提供的refiddle示例,使用\1\2\n\t将返回:

<tr class="GridRow_Business"></tr> 
<tr class="GridAltRow_Business"></tr> 
<tr class="GridRow_Business"></tr> 
<tr class="GridAltRow_Business"></tr> 
+0

0 matches ... http://refiddle.com/refiddles/537e22d875622d263dcc0500 –

+0

@overdriven它不会因为你的refiddle例子是多行的。查看编辑答案 – garyh

+0

@garyh您可以通过在非捕获组中使用[\ s \ S]来验证RegEx。我还建议转移第二个捕获组中的正斜杠:()+ Row_Business \“>)(?:[\ s \ S] *?)(<\/tr>) – gfullam