RegEx匹配除XHTML自身以外的开放标签

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

<p>
<a href="foo">

但不是这些:

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

我想出了这个,并且想确保我已经做对了。 我只捕获az

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

我相信它说:

  • 然后找到一个不到的地方
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 查找任何零次或更多次的字符,贪婪,除/ ,然后
  • 找到一个大于
  • 我有这个权利吗? 更重要的是,你怎么看?


    你不能用正则表达式解析[X] HTML。 因为HTML不能被正则表达式解析。 正则表达式不是一个可以用来正确解析HTML的工具。 正如我以前在HTML和regex问题中回答过的那样,使用正则表达式不会允许您使用HTML。 正则表达式是一种工具,它不足以理解HTML使用的构造。 HTML不是一种常规语言,因此不能用正则表达式进行分析。 正则表达式查询不能将HTML分解为其有意义的部分。 这么多次,但它没有得到我。 即使Perl使用的增强的不规则正则表达式也无法解析HTML。 你永远不会让我开心。 HTML是一种足够复杂的语言,它不能被正则表达式解析。 即使Jon Skeet也不能使用正则表达式解析HTML。 每当你试图用正则表达式解析HTML时,邪恶的孩子就会流下处女的鲜血,而俄罗斯黑客则会用你的网络应用程序。 用正则表达式解析HTML会让受污染的灵魂进入生命的领域。 HTML和正则表达式像爱情,婚姻和仪式杀婴一样走到一起。 <center>不能保存就太晚了。 正则表达式和HTML在同一个概念空间中的作用力会像很多含水腻子一样破坏你的思维。 如果你用正则表达式解析HTML,你就会屈服于他们和他们的亵渎神明的方式,使我们所有人都为不能在基本多语言平面上表达的人而努力劳作,他来了。 HTML-plus-regexp会在你观察的时候液化你的有识之士,你的心灵在恐怖的冲击中萎缩。 基于正则表达式,HTML解析器是被杀死的StackOverflow为时已晚为时已晚,我们无法保存孩子的trangession确保正则表达式将消耗所有活组织的癌症(除了HTML,它不可能像以前预言)亲爱的主帮助我们使用正则表达式解析HTML已经注定了人类对使用正则表达式来处理HTML工具可怕的折磨和安全漏洞,一个永恒的人怎能生存这一祸害确立这个世界和腐败实体的恐惧境界之间的破坏(如SGML实体,但更多的腐败)REG前解析器HTML的世界的一个单纯的一瞥将INS tantly运输程序员的意识不断到尖叫的世界,他来了,可恶slithy正则表达式感染WIL升吞噬你的HT ML解析器,应用程序以及像Visual Basic一样的存在,只会让他变得更糟糕,他来不了他自己的工作,但是他不会去解决所有的问题, HTML标签泄漏fr̶ǫm玩吧眼睛像LIQ UID疼痛,经常EXP ression解析的歌曲将EXTI nguish的铁道部TAL人从SP的声音在这里我可以看到它,你可以看到它很漂亮ŧ他˚F inal snuf的人所有的谎言小号Fing头已经失尽我失落的他来了,他来,他来了ICH或渗透MY FACE所有我的脸ᵒh神,不,不拿去ØNΘ停止的小马*̶͑̾̾GLES ͎a̧͈͖r̽̾̈́͒͑e ňOT真正ZA̡͊͠͝LGΌISͮ҉̯͈͕̹̘TO͇̹̺Ɲ̴ȳ̳宝NYH̸̡̪̯ͨ͊̽̅̾Ȩ̶̧̨̬̩̹̭̯̾͛ͪ̈ͧ̾ͬ͘C̷̙̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔


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


    主持人的注意

    这篇文章被锁定,以防止对其内容进行不当编辑。 这篇文章看起来完全和它应该看起来一样 - 它的内容没有问题。 请不要提醒我们注意。


    虽然要求正则表达式解析任意HTML就像是要求初学者编写操作系统一样,但有时候解析一组有限的,已知的HTML也是适当的。

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

    正则表达式对我来说工作得很好,而且建立速度非常快。


    我认为这里的缺点是HTML是Chomsky Type 2语法(上下文无关语法),RegEx是Chomsky Type 3语法(正则语法)。 由于类型2语法基本上比类型3语法更复杂(请参阅乔姆斯基层次结构),因此您无法完成此项工作。 但许多人会尝试,有些人会声称成功,其他人会发现错误,并将你搞砸。

    链接地址: http://www.djcxy.com/p/76687.html

    上一篇: RegEx match open tags except XHTML self

    下一篇: Quantmod, getSymbols error trying to replicate answer