请教正则表达
<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>)"
------解决方案--------------------
可以试试