2017-04-11 89 views
0

我有一系列表,我想從tr標記的class屬性中使用Visual Studio的Find/Replace對話窗口中的正則表達式刪除特定的類。如果一個class屬性只包含目標類(例如「orgtemplate_tableentry」),我想從「tr」標籤中徹底刪除class屬性;然而,我想保留類屬性,如果額外的類包含在類屬性中。以下RegEx查找目標tr標籤,但就是這樣;它工作在VS 2015年企業:正則表達式從tr標記中刪除類屬性

<tr[^>]+class\b 

回答

0
(<tr[^>]+class="(nameOfClassToRemove)) 

對於後端使用用C#試試這個:

var html = "your string of html like <tr class="abc">...."; 
var regexStr = "(<tr[^>]+class=\"(nameOfClassToRemove))"; 
var matches = Regex.Matches(html, @regexStr); 

if(matches != null && matches.Count > 0) 
{ 
    foreach (Match match in matches) 
    { 
     if(match[1] != null) 
     { 
      var newClassName = match.Value.Replace(match[1], string.Empty); 
     } 
    } 
} 

我沒有測試過這一點,但它會給你一個主意。 這會更好,如果你在JavaScript的前端做到這一點,但。邏輯將是類似的。

一些說明:
正則表達式將拿起2組,
第一將與類中的代碼(TR類=「)和第二組的類名稱,以除去

然後。

+0

你的'regexStr'壞了,跳過第二個'''' – Derek

+0

是的,你需要轉義,只要在裏面加引號就可以了。像var regexStr =「()+ class = \」(nameOfClassToRemove))「 ; – Stelios

+0

這裏是一個例子https://regex101.com/r/j07buk/1 – Stelios

0

您可以使用後面(?<=)外觀和展望(?=)運營商實現這一目標。

嘗試匹配,並在下面的比賽中換人類名:(?<= <tr class=")(.*)className(.*)(?=")

+0

您的RegEx無法正常工作。感謝您的建議,雖然 – Techie2015

+0

@ Techie2015我已經對它進行了一些更新,仍然無法正常工作嗎? – Tony

+0

它仍然沒有正常工作, t工作 – Techie2015

相關問題