<p style="MARGIN: 0in 0in 0pt" class="MsoNormal">
<span style="COLOR: #1f497d">
<span style="FONT-FAMILY: Calibri">Hello World</span>
</span>
</p>
或者
<p>Hello World<p>
想用正则表达式,匹配出其中的正文"Hello World"。
请问这个表达式该如何写?
------解决方案--------------------------------------------------------
额 var str = "html";
str = Regex.Replace("<[^>]+>","");
这个似乎就可以了吧
------解决方案--------------------------------------------------------
(?is)<span[^>]+>([^<]+)</span>
(?is)<p>([^<]+)<p>
取group[1].value
------解决方案--------------------------------------------------------
string temp = @"<p style=""MARGIN: 0in 0in 0pt"" class=""MsoNormal"">
<span style=""COLOR: #1f497d"">
<span style=""FONT-FAMILY: Calibri"">Hello World</span>
</span>
</p>";
Console.WriteLine(Regex.Match(temp, @"(?is)(?<=<p.*?>)(?!\s*<)[^<]+").Value);
------解决方案--------------------------------------------------------
二楼可以满足楼主的需求
但是我想楼主更想看到匹配而非替换
所以4楼备份
------解决方案--------------------------------------------------------
去掉HTML标签就是了
- C# code
/// <summary> /// 去掉HTML标签 /// </summary> /// <param name="strHtml"></param> /// <returns></returns> public static string stripHtml(string strHtml) { Regex objRegExp = new Regex("<(.|\n)+?>"); string strOutput = objRegExp.Replace(strHtml, ""); strOutput = strOutput.Replace("<", ""); strOutput = strOutput.Replace(">", ""); return strOutput; }
------解决方案--------------------------------------------------------
- C# code
@"(?<=<p[^>]*>(\s*<[^<>]+>)*)[^<>]+(?=(<[^<>]+>\s*)*</p>)"
------解决方案--------------------------------------------------------
可以试试