“两级正则表达式”是什么意思?

4
我了解基本的正则表达式,但不确定以下引用的含义(关于如何实现维基解析器),是否有人能提供一些伪代码来启发我?
两层正则表达式
这是一种非常流行的方法。它很快,因为它恰好扫描原始文本两次。
其想法是创建两种类型的正则表达式——一种是将文本拆分成不同种类的块(段落、标题、列表、预格式化块等),然后使用不同的字符级别正则表达式处理每个块。
引用自:http://www.wikicreole.org/wiki/CommonWikiParsingTechniques
2个回答

5
这意味着不要试图在单个正则表达式中完成多个任务,而是将其分成两个任务(两个级别); 先分割,然后分别处理每个标记。我认为人们经常不必要地尝试让单个正则表达式一次完成太多的任务,而不是通过像这样分割不同的任务使事情变得更简单。

1
+1,我完全同意。为什么人们这么喜欢自己给自己找麻烦,我永远不会理解。 - Platinum Azure

3
看起来“两级正则表达式”是一个(稍微有点含糊的)术语,用于解决一些我在StackOverflow上推荐的有点困难(但仍然是正则的)语言问题。
例如,从HTML页面中获取所有img src= URL。虽然可以通过一个正则表达式实现(但比较混乱),但更有意义的方法是使用一个正则表达式获取所有<img>标签(捕获整个标签),然后使用不同的正则表达式从每个匹配项中获取src="http://some-url-here.com"。这使得代码更易读,并且只需扫描文本两次。

我不知道我以前是否听过这个术语。我认为“两步法”可能是一个更清晰的术语。 - Andrew Barber
好的,也许它不是正式的。 :-) 我真的没有一个名字。我只是在我的回答中写它 :-) - Platinum Azure

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接