html - 正则表达式匹配 HTML 中的属性?

标签 html regex parsing

我有一个 txt 文件,它实际上是一些网页的 html 源代码。 在那个 txt 文件中有各种字符串,前面有一个“title=”标签。 例如

<div id='UWTDivDomains_5_6_2_2'  title='Connectivity Framework'> 

我有兴趣提取文本 Connectivity Framework 并将其写入单独的文件。

像这样,有很多这样的标签,每个标签在标题后都有不同的文本='这里有一些我需要提取的文本' 我想从 html source/txt 文件中提取所有此类文本实例并写入单独的 txt 文件。文本只能包含小写字母、大写字母和数字。每个文本字符串的长度(以字符为单位)会有所不同。

我正在使用适用于 Windows 的 PowerGrep。 Powergrep 允许我使用正则表达式 inout 搜索文本文件。 我尝试使用搜索作为 title='[a-zA-Z0-9]

它显示了正确的匹配,但它只匹配字符串的第一个字符,并且只写入与第二个 txt 文件匹配的文本字符串的第一个字符,而不是所有字符串。

我希望所有字符串都匹配并写入第二个文件。

使用 powergrep 做我想做的事情的正确正则表达式或方法是什么?

-广告。

最佳答案

我只是不确定要问多少次 HTML 文件的正则表达式解析问题(并用“使用 DOM 解析器”的正确解决方案回答)。它每天都会出现。

难点在于:

  • 在 HTML 中属性可以有单引号、双引号甚至没有引号;
  • 相似的字符串可以出现在 HTML 文档本身中;
  • 你必须处理正确的转义;和
  • 格式错误的 HTML(体面的解析器对常见错误非常稳健)。

因此,如果您满足所有这些要求(并且它变得非常复杂但仍然不完善的正则表达式),它仍然不是 100%。

HTML 解析器的存在是有原因的。使用它们。

关于html - 正则表达式匹配 HTML 中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/464913/

相关文章:

html - 在 IE7 中垂直对齐多行文本

jquery - 如何使用jquery同时禁用表字段和文本字段?

javascript - 在 JavaScript 位置查找下一个单词的位置

html - 关闭引导模式后内容消失

php - 对 Htaccess 使用两个规则

正则表达式在 PhpStorm/Webstorm (Intellij-IDEA) 中用小写字母替换大写字母

java - 使用 xpath 更新 xml

c++ - 解析字符串数组C++的内容

javascript - 解析关系上的云代码 : "Cannot call method ' _toPointer' of null"when calling . query()

html - 用于简化互联网上重复性任务的 C++ 库?