[英]C# HTML Tag parsing through REGEX
<p style="color: rgb(34, 34, 34); font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: normal;">My name is Faysal </p>
我只想解析字符串“我的名字是Faysal”。 我已经写了以下代码片段,但是什么也没返回。 我需要修改什么?
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);
}
您无法使用正则表达式解析[X] HTML。 因为正则表达式无法解析HTML。 正则表达式不是可用于正确解析HTML的工具。
希望您能像我很久以前一样学习。 您不能使用RegEx解析HTML。 使用为HTML构建的解析器更有效。
如果您的页面是XML或XHTML,则可以使用内置的解析库。
例如, System.Xml.XmlDocument
。
如果是纯HTML,请使用HtmlAgilityPack或其他类似的解析器。
在您的情况下,我将选择第一个p
元素,其样式属性设置为“ whatever”。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
如果这个答案太长了,请问我的mod。
。
。
。
。
您在下面看到的是丑陋的,不推荐! 我求求你,不要看!
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
如果您绝对想使用RegEx(请说出我的意思),那么请尝试以下表达式。
<p style=\"color: rgb\(34, 34, 34\); font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: normal;\">\s*(.+?)\s*</p>
除“ rgb”周围的括号已转义外,其他均相同。 然后我将“ \\ s”更改为“ \\ s”
如果有帮助,我查看了该网站的HTML,但找不到“我的名字是Faysal”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.