<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);