当前位置: 首页 > 面试题库 >

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

孙池暝
2023-03-14
问题内容

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

<p>
<a href="foo">

但不是这些:

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

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

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

我相信它说:

  • 找到一个小于,然后
  • 查找(并捕获)az一次或多次,然后
  • 找到零个或多个空格,然后
  • 找到零次或多次贪婪的字符,除了/,然后
  • 寻找大于
    *我有那个权利吗?更重要的是,您怎么看?

问题答案:

您无法使用正则表达式解析[X] HTML。因为正则表达式无法解析HTML。正则表达式不是可用于正确解析HTML的工具。正如我之前在这里多次回答HTML和Regex问题一样,使用正则表达式将不允许您使用HTML。正则表达式是一种工具,不够复杂,无法理解HTML所采用的结构。HTML不是常规语言,因此无法通过常规表达式进行解析。正则表达式查询无法将HTML分解为有意义的部分。有很多次了,但没有得到我。甚至Perl使用的增强的不规则正则表达式也无法完成解析HTML的任务。你永远不会让我崩溃。HTML是一种足够复杂的语言,无法通过正则表达式进行解析。甚至Jon Skeet也无法使用正则表达式解析HTML。每次您尝试使用正则表达式解析HTML时,这个邪恶的孩子都会哭泣处女之血,俄罗斯黑客会伪装您的Web应用html" target="_blank">程序。用正则表达式解析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解析器?



 类似资料:
  • 问题内容: 我需要匹配所有这些开始标记: 但不是这些: 我想出了这个,想确保我做对了。我只是捕捉到a-z。 我相信它说: 找到一个小于,然后 查找(并捕获)az一次或多次,然后 找到零个或多个空格,然后 找到零次或多次贪婪的字符,除了/,然后 寻找大于 我有那个权利吗?更重要的是,您怎么看? 问题答案: 您无法使用正则表达式解析[X] HTML。因为正则表达式无法解析HTML。正则表达式不是可用于

  • 问题内容: 我需要匹配所有这些开始标签: 但不是这些: 我想出了这个,想确保我做对了。我只是捕捉到。 我相信它说: 找到一个小于,然后 查找(并捕获)az一次或多次,然后 找到零个或多个空格,然后 找到零次或多次贪婪的字符,除了,然后 寻找大于 我有那个权利吗?更重要的是,您怎么看? 问题答案: 尽管只有正则表达式的任意 HTML是不可能的,但有时使用它们来解析有限的已知 HTML集合是适当的。

  • A well-known tag balancing: searches for tag or tag's content bounds from current caret position and selects it. It will expand (outward balancing) or shrink (inward balancing) selection when called m

  • 问题内容: 谁能告诉我如何使用webdriver关闭除第一个标签/主标签之外的所有打开的标签? 我在下面尝试过,但是它同时关闭了所有标签,包括第一个标签。 请帮我。 问题答案: 获取所有窗口句柄,然后遍历它们,将webdriver切换到新的句柄,然后调用close方法。显然跳过原始手柄,然后切换回其余手柄。 就像是;

  • 很好的一天。请您通过打开Chrome浏览器创建一个新选项卡,在其中执行一些操作,关闭新选项卡,然后返回第一个选项卡并继续在其中工作,来判断Selenium VBA是否可行? 我用以下代码打开浏览器:

  • 我在嵌套的代码周围看到一些奇怪的行为 鉴于: 在Chrome中,这会导致 也就是说,它关闭开始标记并打开结束标记。我(当然)听说过“自动关闭标签”;我从没听说过“自动打开标签”。 IE11采用了一种不同的(可以说是更错误的)方式: 因此,它不会自动关闭打开的标记,但它会自动打开关闭的标记,从而导致不平衡的DOM树。 无论如何,我很好奇解决这个问题的正确途径是什么;我应该打开Chrome和IE错误跟