我有一系列表,我想在Visual Studio的“查找/替换”对话框窗口中使用正则表达式从tr标记的class属性中删除特定的类。如果一个class属性只包含目标类(例如" orgtemplate_tableentry"),我想从" tr"中完全删除class属性。标签;但是,如果class属性中包含其他类,我想保留class属性。以下RegEx找到目标tr标签,但那就是它;它适用于VS Enterprise 2015:
<tr[^>]+class\b
答案 0 :(得分:0)
您可以使用(?<=)
后面的外观并向前看(?=)
运算符来实现此目的。
尝试在以下匹配项中匹配并替换类名:(?<= <tr class=")(.*)className(.*)(?=")
答案 1 :(得分: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组,
1st将是具有类的代码(tr class =&#34;),第二组是要删除的类名。
然后你只需用空字符串替换要删除的类。