C# 通过正则表达式解析C HTML标记

C# 通过正则表达式解析C HTML标记,c#,regex,C#,Regex,我只想解析我的名字是Faysal的字符串。我已经编写了以下代码段,但它没有返回任何内容。我需要修改什么 <p style="color: rgb(34, 34, 34); font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: normal;">My name is Faysal </p> 无法使用正则表达式解析[X]HTML。因为正则表达式无法解析HTML。Regex不是一个可以用来

我只想解析我的名字是Faysal的字符串。我已经编写了以下代码段,但它没有返回任何内容。我需要修改什么

<p style="color: rgb(34, 34, 34); font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: normal;">My name is Faysal </p>
无法使用正则表达式解析[X]HTML。因为正则表达式无法解析HTML。Regex不是一个可以用来正确解析HTML的工具

我希望你能像我很久以前那样学习。不能使用正则表达式解析HTML。使用为HTML构建的解析器更有效

如果页面是XML或XHTML格式,则可以使用内置的解析库。 例如,System.Xml.XmlDocument

如果是纯HTML,请使用或其他类似的解析器

在您的例子中,我要做的是选择第一个p元素,它的style属性设置为whatever

不,请不要往下看!

对不起,如果这个答案太长的话

你在下面看到的东西很难看,不推荐!求你了,别看

如果你真的想用RegEx杀了我,那么试试下面的表达

 WebClient web = new WebClient();
        String html = web.DownloadString("http://www.dmp.gov.bd/application/index/pressdetails/press_159");


        MatchCollection m1 = Regex.Matches(html, "<p style=\"color: rgb(34, 34, 34); font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: normal;\">\\s*(.+?)\\s*</p>", RegexOptions.Singleline);


        foreach (Match m in m1) {
            String head = m.Groups[1].Value;

            Console.WriteLine(head);
        }
这是相同的,除了rgb周围的括号是转义的。我将\s改为\s

编辑
如果有帮助的话,我在那个网站上查看了HTML,但找不到我的名字是Faysal。

@RobertHarvey是的,我正要提出HTML敏捷包,我知道可以通过HTML敏捷包来实现。但无论如何我都想让这个代码起作用。是的,我知道你的感受。大多数人认为汽车是最好的公路交通工具,但我想成为第一个驾驶游艇穿越公路的人。老实说,我理解那种感觉,不管怎样,我99%都在那里——但作为一个尝试过的人,相信我——HTML总是会向你抛出一个格式化曲线球。
<p style=\"color: rgb\(34, 34, 34\); font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: normal;\">\s*(.+?)\s*</p>