求一正则表达式,匹配HTML标签中指定属性以外的属性

时间:2022-02-07 05:36:25
原内容:
<a onclick="alert('Test!');" href="http://www.google.com" title="谷歌" class="eee">这是一个 class="eee"的链接</a>

正则替换后:
<a href="http://www.google.com">这是一个 class="eee"的链接</a>

求一正则,匹配<a>中除href以外的属性。
我试了好久没能写出来,找了好久资料也没能解决。只好向大家求教了。先在此谢过!

4 个解决方案

#1



            StreamReader reader = new StreamReader("c:\\1.txt",Encoding.Default);
            string source = reader.ReadToEnd();
            Regex reg = new Regex(@"(?is)(href=""[^""]+"")[^>]+>([^<>]+)");
            Match mm = reg.Match(source);
            MessageBox.Show("<a "+mm.Groups[1].Value+">"+mm.Groups[2].Value+"</a>");

#2


string temp = @"原内容:
<a onclick=""alert('Test!');"" href=""http://www.google.com"" title=""谷歌"" class=""eee"">这是一个 class=""eee""的链接</a>
 
";
                temp = Regex.Replace(temp,@"(?<=<a.*?\s+?)((?!href)[^=])*?=(['""]?)[^\2]*?\2",string.Empty);
                //<a  href=\"http://www.google.com\"  >这是一个 的链接</a>

#3


需求:匹配所有HTML标签中指定属性以外的属性,不仅限于<a>标签的href属性。。。

#4



string temp = @"
<a onclick=""alert('Test!');"" href=""http://www.google.com"" title=""谷歌"" class=""eee"">这是一个 class=""eee""的链接</a>
 
";
                string exceprtStr = "href";//自己定义
                temp = Regex.Replace(temp, @"(?<=<[^>]*?\s+?)((?!" + exceprtStr + @")[^=])*?=(['""]?)[^\2]*?\2", string.Empty);

#1



            StreamReader reader = new StreamReader("c:\\1.txt",Encoding.Default);
            string source = reader.ReadToEnd();
            Regex reg = new Regex(@"(?is)(href=""[^""]+"")[^>]+>([^<>]+)");
            Match mm = reg.Match(source);
            MessageBox.Show("<a "+mm.Groups[1].Value+">"+mm.Groups[2].Value+"</a>");

#2


string temp = @"原内容:
<a onclick=""alert('Test!');"" href=""http://www.google.com"" title=""谷歌"" class=""eee"">这是一个 class=""eee""的链接</a>
 
";
                temp = Regex.Replace(temp,@"(?<=<a.*?\s+?)((?!href)[^=])*?=(['""]?)[^\2]*?\2",string.Empty);
                //<a  href=\"http://www.google.com\"  >这是一个 的链接</a>

#3


需求:匹配所有HTML标签中指定属性以外的属性,不仅限于<a>标签的href属性。。。

#4



string temp = @"
<a onclick=""alert('Test!');"" href=""http://www.google.com"" title=""谷歌"" class=""eee"">这是一个 class=""eee""的链接</a>
 
";
                string exceprtStr = "href";//自己定义
                temp = Regex.Replace(temp, @"(?<=<[^>]*?\s+?)((?!" + exceprtStr + @")[^=])*?=(['""]?)[^\2]*?\2", string.Empty);