Dregexp全名Dream Regexp是一个用java语言实现的,基于正则表达式的格式化解析和纠正原文的工具。
其解析格式十分灵活,纠错能力非常强大,可以适应不同功能需要。 灵活 Dregexp采用正则表达式作为格式的模式串,可以轻易的给出匹配的范围,而且格式串还拥有良好的扩展性。 如:常见的变量定义 可以使用格式模式串:int\s+\w+(=\d+)?; 所匹配的内容1:int i; 所匹配的内容2:int i=8; 一个模式·可以匹配多种格式,这正体现了Dregexp的强大之处。 纠错能力分析能力 Dregexp的纠错能力体现在其纠正器机制。Dregexp允许用户配置一系列的纠正器安装在指定的块上,这样当扫描时,一旦发现这些块与原文不匹配时,立刻调用块上安装的纠正器进行纠正。 例如:格式串为:1[2-4]5 原文为165 分析:原文中6与格式串[2-4]不相匹配 此时将会调用[2-4]比较块上安装的纠正器 Dregexp的分析是由解析器来完成的。类似于纠正器都是需要安装。不同的是解析器安装在一个格式模式串上,而不是格式串上的比较块。当原文与格式串产生了一次匹配时调用解析析器来解析原文。 例如:格式<[^\s]+> 原文 234 原文中 与格式<[^\s]+>已产生匹配 此时调用安装在该格式串上的解析器完成解析。 备注:原文可以很长,格式串将依次扫描出所有匹配项 适应性 Dregexp的适应性除了表现在格式串正则表达式的扩展格式的能力,重点还体现在纠正器与解析器机制。 具体有: 1 纠正器和解析器可以安装在任何地方。 2 Dregexp要求所安装的纠正器或解析器必须是用户去实现子类。也就是说用户可以按照需要自由的完成各种功能,而Dregexp已经提供了完备的一系列的方法取得当前原文的扫描情况,包括出错点,匹配历程等等。 可以说Dregexp已经适应了任何一种业务功能的需要。 扩展性 Dregexp扩展性体现在其灵活性与适应性上。 值得一提的是:Dregexp的格式串支持捕获组。 Dregexp的纠正其允许选择纠正之后是否要求纠正处与原文再次比较。 如:模式1[2-4]5 原文为165 调用纠正器中修改原文6为8,此时原文变为185。若要求再次比较还会发生[2-4]与8比较,若不要求则不会发生比较 Dregexp的解析器允许可选的是否继续扫描下文。 如:模式<^\s+> 原文
12321 1231 当
与<^\s+>匹配时调用解析器。解析器可以选择是否继续扫描。若选择继续扫描就会发现下文 与<^\s+>匹配,若选择不继续则扫描到此结束,不会出现下文中任何内容。 纠正器与解析器的选择操作可以有效的扩展各种细粒度较高的功能