【发布时间】:2019-09-26 17:43:15
【问题描述】:
我有以下 HTML 作为输入:
<p>Hello</p>
<p>How are you?</p>
<div>Hello again</div>
我怎样才能只输出“Hello”? (仅来自第一个 p-tag 的内容)。并且我怎样才能只访问第二个 p-tag 内容?
所以输出应该是:
string p1 = "Hello"
string p2 = "How are you?"
到目前为止我的代码。完全错误!!!救命!
using System.Text.RegularExpressions;
string p1 = Regex.Match("<p>(.*?)</p>"[0], myString);
string p2 = Regex.Match("<p>(.*?)</p>"[1], myString);
【问题讨论】:
-
我看了看,但没有告诉我如何具体访问哪个标签
-
为什么要对 HTML 文档进行正则表达式?即使使用基本的HtmlDocument 类(例如GetElementsByTagName),你也有很多工具可以做到这一点。或获取HtmlAgilityPack。
-
我在一家小餐馆当厨师。我不是程序员。我只是想解决这个小问题。我不知道我还能怎么做
-
你交换了正则表达式和输入字符串。
Regex.Match(myString, "(?s)<p>(.*?)</p>").Groups[1].Value。要真正解析 HTML,你必须学习一些编程,否则从长远来看你会失败。 -
听听人们在告诉你什么。 RegEx不是解析 HTML 的好工具。有更好的库,例如 HtmlAgilityPack,可以使这项工作变得更容易,并且代码会更好地工作。即使具有基本的编码技能,这些也应该相当容易学习..
标签: c# html regex parsing text