Dregexp正則表達式
Dregexp全名Dream Regexp是一個用java語言實現(xiàn)的,基于正則表達式的格式化解析和糾正原文的工具。
其解析格式十分靈活,糾錯能力非常強大,可以適應不同功能需要。
靈活
Dregexp采用正則表達式作為格式的模式串,可以輕易的給出匹配的范圍,而且格式串還擁有良好的擴展性。
如:常見的變量定義
可以使用格式模式串:int\s+\w+(=\d+)?;
所匹配的內(nèi)容1:int i;
所匹配的內(nèi)容2:int i=8;
一個模式·可以匹配多種格式,這正體現(xiàn)了Dregexp的強大之處。
糾錯能力分析能力
Dregexp的糾錯能力體現(xiàn)在其糾正器機制。Dregexp允許用戶配置一系列的糾正器安裝在指定的塊上,這樣當掃描時,一旦發(fā)現(xiàn)這些塊與原文不匹配時,立刻調(diào)用塊上安裝的糾正器進行糾正。
例如:格式串為:1[2-4]5 原文為165
分析:原文中6與格式串[2-4]不相匹配
此時將會調(diào)用[2-4]比較塊上安裝的糾正器
Dregexp的分析是由解析器來完成的。類似于糾正器都是需要安裝。不同的是解析器安裝在一個格式模式串上,而不是格式串上的比較塊。當原文與格式串產(chǎn)生了一次匹配時調(diào)用解析析器來解析原文。
例如:格式<[^\s]+> 原文
234
原文中
與格式<[^\s]+>已產(chǎn)生匹配
此時調(diào)用安裝在該格式串上的解析器完成解析。
備注:原文可以很長,格式串將依次掃描出所有匹配項
適應性
Dregexp的適應性除了表現(xiàn)在格式串正則表達式的擴展格式的能力,重點還體現(xiàn)在糾正器與解析器機制。
具體有:
1 糾正器和解析器可以安裝在任何地方。
2 Dregexp要求所安裝的糾正器或解析器必須是用戶去實現(xiàn)子類。也就是說用戶可以按照需要自由的完成各種功能,而Dregexp已經(jīng)提供了完備的一系列的方法取得當前原文的掃描情況,包括出錯點,匹配歷程等等。
可以說Dregexp已經(jīng)適應了任何一種業(yè)務功能的需要。
擴展性
Dregexp擴展性體現(xiàn)在其靈活性與適應性上。
值得一提的是:Dregexp的格式串支持捕獲組。
Dregexp的糾正其允許選擇糾正之后是否要求糾正處與原文再次比較。
如:模式1[2-4]5 原文為165
調(diào)用糾正器中修改原文6為8,此時原文變?yōu)?85。若要求再次比較還會發(fā)生[2-4]與8比較,若不要求則不會發(fā)生比較
Dregexp的解析器允許可選的是否繼續(xù)掃描下文。
如:模式<^\s+> 原文
12321
1231
當
與<^\s+>匹配時調(diào)用解析器。解析器可以選擇是否繼續(xù)掃描。若選擇繼續(xù)掃描就會發(fā)現(xiàn)下文
與<^\s+>匹配,若選擇不繼續(xù)則掃描到此結束,不會出現(xiàn)下文中任何內(nèi)容。
糾正器與解析器的選擇操作可以有效的擴展各種細粒度較高的功能
