【发布时间】:2019-12-31 03:49:55
【问题描述】:
我有一个 ASP.NET Core 项目,需要我从网站读取响应并提取某个单词。
我尝试的是用空格替换标签,然后删除标签。不幸的是,我对此一无所知。有什么更好的方法?
我想从这些html标签中提取Toyota
<tr>
<td class="text-muted">Car Model</td>
<td><strong>Toyota 2015</strong></td>
</tr>
我试过了:
var documentSource = streamReader.ReadToEnd();
//removes html content
Regex remove = new Regex(@"<[^>].+?>");
var strippedSource = remove.Replace(documentSource.Replace("\n", ""), "");
//convert to array
string[] siteContextArray = strippedSource.Split(',');
//matching string
var match = new Regex("Car Model ([^2015]*)");
List<Model> modelList = new List<Model>();
Model model = new Model();
foreach (var item in siteContextArray)
{
var wordMatch = match.Match(item);
if (wordMatch.Success)
{
model.Add(
new Model
{
CarModel = wordMatch.Groups[1].Value
}
);
}
}
return modelList;
【问题讨论】:
-
请不要使用正则表达式来解析 HTML,而是使用 HTML 解析器。
-
嗨@TimBiegeleisen 很高兴你提到了这一点。我从未听说过 HTML 解析器。我将如何处理这个问题?
-
关于使用正则表达式解析的明确答案:stackoverflow.com/a/1732454/4665
-
.net 的 goto HTML 解析器是 HTML Agility Pack
标签: c# html asp.net regex strip