相關文章:
RegHelper 智能清洗庫
在做很多數據收集、數據清洗、數據體檢的項目中。我們經常會遇到很多髒數據,或者匹配規則過於複雜等問題。在小編做過某大廠成本數據雲平臺的數據體檢應用深深體會到那是個非常蛋碎的問題。所以在過完那段地獄般的開發階段後,將其中一個小功能挑出來總結出一個比較好用的工具。
使用場景
- 大數據數據收集
- 數據項目體檢
- 統計類處理
- 髒數據轉換標準值等
工具需要解決的問題
- 精準匹配
- 模糊匹配
- 多條件匹配
- 多條件篩選
- 多條件替換
- 靈活配置
- 可靈活拓展
- 可自動學習
工具的原則其實就是調用了多層級的正則表達式來處理數據。將需要處理的數據分層次一條條的觸發處理。然而處理的條件和規則又可由後期開發的工具進行自動學習規則。
我將該工具集合到tim-db 工具包中
/**
* @Description 正則匹配工具
* @Author liuding
* @CreateDate 11:00 2019/7/25 0025
* @UpdateUser
* @UpdateDate
* @UpdateRemark
* @Version 1.0
*/
public interface RegHelper {
/**
* 判斷是否有存在觸發
* @param str
* @param groups
* @param codes
* @return
*/
boolean isHava(String str,String groups,String codes);
/**
* 是否全部滿足
* @param str
* @param groups
* @param codes
* @return
*/
boolean isHavaAll(String str,String groups,String codes);
/**
* 觸發替換數據
* @param str
* @param groups
* @param codes
* @return
*/
String regStr(String str,String groups,String codes);
}
以上是工具的三個接口
結合數據庫表中的配置
- groups 爲組的概念,我們再處理數據的時候可選單一條規程處理。可分爲一組條件來處理
- code 爲單個編號,和groups組合使用。就能調用到對應的那個數據
- des 正則描述
- trugger 爲觸發條件
- send 爲需要替換的內容
- send_value 爲替換值 將send 匹配到的內容替換成該替換值
自動學習、靈活拓展 等
靈活拓展與自動學習可以自己寫套規則。將需要處理的數據規則,進行規模化的學習。生成想要的公式插入表中即可