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

时间:2012-01-17 16:16:43

标签: regex

我理解基本正则表达式,但不确定以下引用的含义(关于如何实现wiki解析器),是否有人可以提供一些伪代码来启发我?

  

两级正则表达式

     

这是一种非常受欢迎的方法。它非常快,因为它只扫描原始文本两次。

     

这个想法是创建两种正则表达式 - 一种用于将文本拆分为不同类型的块(段落,标题,列表,预格式化块等),然后使用不同的字符级常规处理它们表达

引自:http://www.wikicreole.org/wiki/CommonWikiParsingTechniques

2 个答案:

答案 0 :(得分:5)

这意味着不要尝试在单个Regex中完成多个任务,而是将其拆分为两个任务(两个级别);首先拆分,然后分别处理每个令牌。

我的观点是,人们经常不必尝试让一个正则表达式一次性做太多,而不是通过分割这样的不同任务来使事情变得更简单。

答案 1 :(得分:3)

看起来“两级正则表达式”是一个(稍微含糊不清)的术语,我在StackOverflow的一些答案中建议用于解析稍微困难(但仍然是常规)的语言问题。

一个示例是从HTML页面获取所有img src=个网址。在一个正则表达式中执行此操作是可能的(但相当混乱);更有意义的是使用正则表达式获取所有<img>标签(捕获整个标签),然后使用不同的正则表达式从每个匹配中获取src="http://some-url-here.com"。这使得代码更具可读性,并且您只扫描文本两次。

相关问题