2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個贊
像這樣的事情怎么樣?本質(zhì)上將 TIME_ID_CATEGORY 或 PAGE_IMPRESSION 匹配到組 1,并將其后的任何內(nèi)容(即后綴)匹配為組 2。
(TIME_ID_CATEGORY|PAGE_IMPRESSION)(\w+)
然后只需將第 2 組的內(nèi)容替換為空字符串即可。或者只是替換為 Group 1,這也將消除后綴(請參見下面的代碼片段)。
示例代碼片段:
public static void main(String args[]) throws Exception {
String line = "WITH dataTab0 AS (SELECT TO_CHAR(to_date(tab_0_0.times),'YYYYMMDD') AS TIME_ID_CATEGORYe93bc60a0041,tab_0_0.request_id AS PAGE_IMPRESSIONf6beefc154b44e4b FROM full_contents_2";
Pattern p = Pattern.compile("(TIME_ID_CATEGORY|PAGE_IMPRESSION)(\\w+)");
Matcher m = p.matcher(line);
if (m.find()) {
String output = m.replaceAll("$1");
System.out.println(output);
//WITH dataTab0 AS (SELECT TO_CHAR(to_date(tab_0_0.times),'YYYYMMDD') AS TIME_ID_CATEGORY,tab_0_0.request_id AS PAGE_IMPRESSION FROM full_contents_2
}
}

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個贊
我的猜測是,也許是一個簡單的表達(dá),
[a-f0-9]{14}
如果我們只有那些 14 長度的子字符串,則替換為空字符串可能實(shí)際上在這里起作用。
添加回答
舉報(bào)