2014-05-22 51 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