一尘不染

RegEx匹配除XHTML自包含标签之外的其他打开标签

html

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

<p>
<a href="foo">

但不是这些:

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

我想出了这个,想确保我做对了。我只是捕捉到a-z。

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

我相信它说:

  • 找到一个小于,然后
  • 查找(并捕获)az一次或多次,然后
  • 找到零个或多个空格,然后
  • 找到零次或多次贪婪的字符,除了/,然后
  • 寻找大于

我有那个权利吗?更重要的是,您怎么看?


阅读 336

收藏
2020-09-01

共1个答案

一尘不染

您无法使用正则表达式解析[X] HTML。因为正则表达式无法解析HTML。正则表达式不是可用于正确解析HTML的工具。正如我之前在这里多次回答HTML和Regex问题一样,使用正则表达式将不允许您使用HTML。正则表达式是一种不够复杂的工具,无法理解HTML所采用的结构。HTML不是常规语言,因此无法通过常规表达式进行解析。正则表达式查询无法将HTML分解为有意义的部分。有很多次了,但是没有得到我。甚至Perl使用的增强的不规则正则表达式也无法完成解析HTML的任务。你永远不会让我崩溃。HTML是一种足够复杂的语言,无法通过正则表达式进行解析。甚至Jon Skeet也无法使用正则表达式解析HTML。每次您尝试使用正则表达式解析HTML时,这个邪恶的孩子都会哭泣处女之血,俄罗斯黑客会伪装您的Web应用程序。用正则表达式解析HTML会使灵魂陷入生活领域。HTML和正则表达式可以像爱情,婚姻和仪式杀婴一样一起使用。

无法容纳它为时已晚。正则表达式和HTML共同作用于同一个概念空间中,将破坏您的大脑,就像水腻腻一样。如果您使用正则表达式解析HTML,那么您就是在屈服于他们及其亵渎神明的方式,这使我们所有人都为不愿在基本多语言平面中表达其名字的人付出辛劳。HTML + regexp将在您观察时液化智者的神经,使您的心灵在恐怖的冲击中枯萎。为时已晚,为时已晚,我们无法挽救孩子的混乱,确保正则表达式将消耗所有活体组织(除了HTML,如先前所言,HTML不能这样做)亲爱的上帝,我们可以帮助任何人使用正则表达式解析此祸患 HTML 使用rege x作为处理HTML的工具,将人类注定了永恒的酷刑和安全漏洞,在这个世界和腐败实体(例如SGML实体,但更腐败)的可怕领域之间建立了突破。 reg的世界前解析器HTML将插件 tantly运输AP rogrammer的意识我 n要AW ORL人的不断尖叫d,他来了,可恶SL ithy正则表达式感染WIL 升吞噬你的HT ML解析器,应用和存在的Visual Basic一样,所有的时间只有更糟,他谈到他命令 ES 没有网络连接 GHT ^ h E排,喜小号邪恶的光采德stro҉ying所有的启蒙运动,HTML标记泄漏fr̶ǫm玩吧眼睛像LIQ UID p AlN,定期EXP重的歌曲裂变解析将EXTI nguish的铁道部的声音从SP TAL的人在这里我可以看到它,你可以看到它是美丽的牛逼,他˚F inal snufFing头Ø F中的谎言的男人一切都失去了A的 LL我SLOST日è小马才想起小号他命令他共同ES 我式T 他 ICH或permeat ES人 L我FAC Ë我的脸ᵒh神ň □否野应 o在 Θ停止牛逼,他的*̶͑̾̾GL ES ͎a̧͈͖r̽̾̈́͒͑eñ OT真实ZA̡͊͠͝LGΌISͮ҉̯͈͕̹̘Ť O͇̹̺Ɲ̴ȳ̳TH ËPO NYH̸̡̪̯ͨ͊̽̅̾Ȩ̶̧̨̬̩̹̭̯̾͛ͪ̈ͧ̾ͬ͘C̷̙̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝ š

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

2020-09-01