我有一个 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/