【发布时间】:2012-04-14 21:44:20
【问题描述】:
现在我们都知道,使用正则表达式解析 HTML 通常是不可能的,因为它会解析上下文相关的语法,而正则表达式只能解析正则语法。其他编程语言当然也是如此。
现在,最近,Rainbow.js 语法荧光笔已经发布。它的前提被描述为非常简单:
Rainbow 本身非常简单。它遍历代码块,处理正则表达式模式,并将匹配模式包装在标签中。
我认为语法突出显示本质上是一项与语言解析具有相同复杂性的任务,如果我们假设它必须既好又适用于多种语言。尽管如此,虽然该库有相当多的criticism,但无论是HackerNews discussion(作为技术倾斜讨论的示例)都没有提到使用正则表达式突出显示语法在一般情况下基本上是不可能的案例,我认为这是一个重大的、引人注目的缺陷。
现在的问题是:我缺少什么吗?特别是:
- 一般情况下是否可以使用正则表达式突出显示语法?
- 这是应用的 80/20 规则的一个实例,其中正则表达式可能足够有用?
【问题讨论】:
标签: regex parsing syntax-highlighting