2012-06-05 44 views
0

我想將正則表達式查詢轉換爲關鍵字查詢,以便關鍵字查詢爲我提供正則表達式查詢的超集。例如將正則表達式查詢轉換爲英文關鍵字查詢

  • 「主持人。」 可以轉換爲 「主機
  • 「主機((?10 \ 0.6 \ 0.2 *))ChuckN *」 可以轉換爲 「主機*」,「 10 6 「 」查克
  • 」主持人。*登記。+「 可以轉換爲 」主機*「, 」註冊*「
  • 」10 \ 0.64 \ 0.2 *「 可以轉換爲」 10 64 *「

爲此,我正在尋找一個正則表達式樹的葉元素可以合併nt來獲取關鍵字查詢。我正在嘗試訪問java中用於存儲正則表達式的模式類中的數據結構。請讓我知道這可以做什麼或者如果有其他方式。

回答

0
System.out.println(
     ( "host." 
     + "\nhost ((?10\\.6\\.2*)) ChuckN*" 
     + "\nhost.* registered.+" 
     + "\n10\\.64\\.2*" 
    ) 
     .replaceAll("(.?\\*)", "*") 
     .replaceAll("\\.\\+", "*") 
     .replaceAll("\\\\.", " ") 
     .replaceAll("(\\.?[^A-Za-z0-9 \\*\\n])", "") 
    ); 

輸出

host 
host 10 6 * Chuck* 
host* registered* 
10 64 * 

編輯最後的replaceAll 行糾正。

您可能必須完成最後的.replaceAll(「sString」,「」)中的sString。