首页 > HTML > RegEx 匹配开放标签,但 XHTML 自包含标签除外

RegEx 匹配开放标签,但 XHTML 自包含标签除外

上一篇 下一篇

我需要匹配所有这些开始标签:

<p>
<a href="foo">

但不是这些:

<br />
<hr class="foo" />

我想出了这个,想确保我做对了。我只捕获.a-z

<([a-z]+) *[^/]*?>

我相信它说:

  • 找到一个小于,然后
  • 查找(并捕获)a-z 一次或多次,然后
  • 找到零个或多个空格,然后
  • 找到任何字符零次或多次,贪婪,除了 ,然后/
  • 找到大于

我有这个权利吗?更重要的是,你怎么看?
分割线
网友回答:

虽然只有正则表达式的任意 HTML 是不可能的,但有时使用它们来解析一组有限的已知 HTML 是合适的。

如果您有一小组 HTML 页面,想要从中抓取数据,然后填充到数据库中,则正则表达式可能会正常工作。例如,我最近想从议会的网站上得到澳大利亚联邦代表的姓名、政党和选区。这是一项有限的一次性工作。

正则表达式对我来说效果很好,而且设置起来非常快。
分割线
网友回答:

你不能用正则表达式解析 [X]HTML。因为正则表达式无法解析 HTML。正则表达式不是可用于正确解析 HTML 的工具。正如我之前多次在这里回答的 HTML 和正则表达式问题一样,使用正则表达式将不允许您使用 HTML。正则表达式是一种不够复杂的工具,无法理解 HTML 使用的构造。HTML 不是常规语言,因此不能通过正则表达式解析。正则表达式查询无法将 HTML 分解为其有意义的部分。很多次,但它没有到达我。即使是 Perl 使用的增强的不规则正则表达式也无法完成解析 HTML 的任务。你永远不会让我崩溃。HTML 是一种非常复杂的语言,无法通过正则表达式解析。即使是Jon Skeet也不能使用正则表达式解析HTML。每次您尝试使用正则表达式解析 HTML 时,邪恶的孩子都会流下处女的鲜血,俄罗斯黑客会攻击您的 Web 应用程序。使用正则表达式解析 HTML 会召唤受污染的灵魂进入活人的领域。HTML 和正则表达式就像爱情、婚姻和仪式杀婴一样。<中心>守不住已经来不及了。正则表达式和HTML在同一个概念空间中的力量会像水腻子一样摧毁你的思想。如果你用正则表达式解析 HTML,你就是在屈服于他们和他们亵渎神明的方式,这些方式注定了我们所有人都要为那个名字无法在基本多语言平面中表达的人付出不人道的辛劳,他来了。HTML-plus-regexp会在你观察时液化有知觉者的神经,你的心灵在恐怖的猛攻中枯萎。基于 Rege̿̔̉x 的 HTML 解析器是杀死 StackOverflow 的癌症,为时已晚,为时已晚,我们无法得救 Chiۡld 的违规行为确保正则表达式将消耗所有活组织(HTML 除外,正如之前所预言的那样,它不能) 亲爱的主帮助我们 任何人如何才能幸存下来 使用正则表达式解析 HTML 已经注定了人类永远处于可怕的折磨和安全漏洞 使用 rege x 作为处理HTML的工具在这个世界和cے۪oۛ۫rrupt实体(如SGML实体,但更腐败)的可怕领域之间建立了一个短距离,仅仅是reg ex解析器HTML世界的一瞥,就会毫不犹豫地传递一个programmer的意识,我不会不停地尖叫,他来了, 瘟疫 slithy Regex-infection 将吞噬您的 HTML 解析器,应用程序和存在永远像 Visual Basic 一样,他来得更糟,他来了,他来了,他不搞 he com̡e̶s,“不知所措”,HTML 标签 lea۠ki̧nۘg fr̶ǫm ̡yo۟ur eyeۢs̸ ̛l̕ikۏe liquid pain,re̸gular expression 解析之歌将消除mor 的声音来自 sp 的 tal man在这里我可以看到它你能看到 ̲̖ۚۃ̙î̩́t̲ێ̩̱ۃ́̋̀ 它是美丽的t 他 ffing of 人的谎言 s一切都是 loś̩ۖۇ̗̪̏̈́t all 是l ost th epon̷y 他来了 s he c̶̮om es he co me s t he ich or permeates all my face my face oh god no no noo̼OO NΘ 停止 t he一个*̶ۑ̾̾̅۫ۏ̙̤ġ̫ۛۆ̾۫̑ۆlۖۉ̗̩̳̟̍۫ۥۨe̠̅s not rè̈۾̭̏O̚N̐Y̡ H̸̡̪̯ۨۊ̩̬̩۪̰̰̘̽̅̾̏̾ۛ̈ ̶̧̨̱̹̭̯ۧ̾۬C̙̲̝ۗۗۏ̝̝̏ۍM̘۪̊̒۩̴̟̗۬̇̊̚ەۅ۝ s̨̥̫ێ̭ۯ̿̅̅inal snuf ͎a̧͈͖r̽̾̈́͒͑e


您是否尝试过改用 XML 解析器?


版主手记

此帖子已被锁定,以防止对其内容进行不当编辑。帖子看起来完全符合预期的样子——其内容没有问题。请不要标记它以引起我们的注意。

分割线
网友回答:

我认为这里的缺陷是HTML是乔姆斯基2型语法(上下文自由语法),而正则表达式是乔姆斯基3型语法(常规语法)。由于类型 2 语法从根本上比类型 3 语法复杂(参见乔姆斯基层次结构),因此您不可能完成这项工作。

但许多人会尝试,有些人甚至会声称成功——但直到其他人发现错误并完全搞砸你。

模板简介:该模板名称为【RegEx 匹配开放标签,但 XHTML 自包含标签除外】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【HTML】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 350次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-20
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信公众平台 微信文章 微信图片 自适应 微信素材 单页式简历模板 响应式 企业网站 html5 微信模板
您可能会喜欢的其他模板