【发布时间】:2021-01-20 01:18:01
【问题描述】:
我正在尝试在具有特定属性的所有文件中查找组件。尝试了这个正则表达式模式<Button[^>]*[\n\s]+className[^>]*>。 95% 可以正常工作。
您可以在上面的示例中看到。具有条件属性的按钮组件将不匹配。它也有 className 属性。它应该匹配。由于条件属性行中的大于字符 =>,它不匹配。所以,它甚至在组件关闭标记之前就停止了。
如何避免在此正则表达式模式中大于字符 (>) 之间出现?
【问题讨论】:
-
你不应该使用正则表达式来解析 HTML:stackoverflow.com/questions/1732348/…
-
或者实际上除了最简单的情况 (IMO) 正则表达式之外的任何内容都会产生难以阅读和调试的代码,而且似乎甚至可能无法使用正则表达式解析 html。
-
抱歉,您希望得到什么结果?按钮标签之间的所有条目(包括所有属性)?
-
<Button(?:\w+={[^{}]*}|[^>])*\sclassName=(?:\w+={[^{}]*}|[^>])*>。见regex101.com/r/SGB0aN/4 -
@ChristianBaumann 请不要使用该链接来解释为什么不应该使用正则表达式进行 HTML 解析。 OP不会理解的。这是我整理的一个更具说明性的页面:htmlparsing.com/regexes.html
标签: regex html-parsing