本问题已经有最佳答案,请猛点这里访问。
我正在尝试构建一个正则表达式来提取HTML标记内的文本,如下所示。 但是我在正则表达式方面的技能有限,而且我在构建字符串时遇到了麻烦。
如何从此标记中提取文本:
text
这只是页面HTML源代码的示例。 基本上,我需要一个regex字符串来匹配标签内的"文本"。 任何人都可以帮我这个吗? 谢谢。 我希望我的问题不是太可怕。
更新:只是为了澄清,report_drilldown是绝对的,但我并不关心它是否在regex中作为绝对存在。
145817是一个随机的6位数字,实际上是一个数据库ID。"text"只是简单的纯文本,所以它不应该是无效的HTML。 此外,大多数人都说在这种情况下最好不要使用正则表达式,那么最好使用什么? 非常感谢!
使用正则表达式来解决解析HTML的问题? 现在你有两个问题。
怎么会这样? 我之前在另一个具有相似任务的项目中使用了正则表达式。 也许最好使用其他东西来提取标签的文本?
一般来说,使用正则表达式解析HTML是一件坏事:stackoverflow.com/questions/701166
使用正则表达式进行HTML解析不适用于无效的html,即使有效的html案例也可能很麻烦。 最好在C#中使用Dom Document实现,并访问特定节点的textContent ▼显示。
答案是......不要!
使用库,例如??这个库
([^
这不会真正解决问题,但它可能只是勉强可以解决。特别是,它非常脆弱,对标记的最轻微改变并不匹配。如果report_drilldown不是绝对的,则将其替换为[^']*,和/或捕获它和数字(如果需要)。
如果你需要解析HTML的东西,那么如果你不得不处理标签汤,那就太噩梦了。如果您使用的是Python,我建议使用BeautifulSoup,但我不知道C#的类似内容。 (任何人都知道C#的类似标签汤解析库?)
HTML中的属性不应包含
是的,我很抱歉愚蠢的控制台字体混合了我 - 它应该是()。谢谢你的帮助!
哈,我更新我的帖子,看到你的答案,现在回滚到原来的。
对于那个很抱歉!!!!我的坏 - 现在我确信我需要为CMD找到更好的字体。谢谢!
Lucida Console和Envy Code R(搜索谷歌)对我来说很有用。
谢谢你,谢谢你,谢谢你!对于所有的东西(包括字体)!我会尝试实现正则表达式,看看会发生什么 - 谢谢一堆!
我同意正则表达式可能不是解析它的最好方法,但使用反向引用很容易做到:
\w*)(?:.*)>(?.*)\k>
标签和文本被命名为捕获组。
帽子:快递图书馆
即使假设格式良好的输入(如果不是这样,这种解析方式可能会失败,或者更糟糕的是,错误地成功),您可以通过此示例输入显示两个问题:1)textmore text。 2)ab。当然,你的答案实际上并不比我的好,但我会犹豫是否容易称之为。正则表达式对于这项工作来说简直就是错误的工具,即使偶尔也能正常工作。
好。我将继续寻找一种非常"安全"和"好"的方法来处理这种"标签汤",但就目前而言,正如R. Pate的正则表达式正在发挥作用,我将继续使用它直到我找到更好的方法解。非常感谢大家!
应该给你开始标记。
会给你结束标签。只需提取出介于两者之间的内容。虽然未经测试。
你的意思是 x intead of / x?为什么除null之外的任何字符为什么=和"逃脱?因为你没有以sed风格使用/分隔符,所以逃避/也有点奇怪。