2017-04-11 116 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