2017-01-27 41 views
0

我無法獲得Java正則表達式來解析文件名中的某些內容。我提出了一個GUI界面輸入模式和替代,對於同樣命名爲「[email protected]_2009_05_01_2016_12_30.txt」Java正則表達式從文件名中解析外匯對

這裏的每個文件名是圖形用戶界面的截圖: enter image description here

我知道這是一個Java正則表達式,但我似乎不能正確。

什麼是正則表達式替換「EUR__USD」「EUR/USD」

輸入:

「level1EUR__USD @ TRUEFX_2009_05_01_2016_12_30」

輸出:

level1EUR/USD @ TRUEFX_2009_05_01_2016_12_30

+0

的其餘部分是模式總是相同的? – MYGz

+0

結果應該是什麼? –

+0

是的,模式對於所有文件都是一樣的,文件名的格式相同 – parliament

回答

4

您可以使用

^\w*?([A-Z]{3})_+([A-Z]{3}).* 

$1/$2取代。

請參閱regex demo

詳細

  • ^ - 串的開始
  • \w*? - 0+字字符,儘可能少
  • ([A-Z]{3}) - 第1組(在替換模式稱爲與$1) :3個大寫ASCII字母
  • _+ - 1或更多_字符
  • ([A-Z]{3}) - 第2組(在替換模式稱爲與$2):3個大寫字母ASCII
  • .* - 線
+0

短正則表達式「([A-Z] {3})_ +([A-Z] {3})」,然後替換爲「$ 1/$ 2」 –

+0

非常感謝您的詳細解釋。將在4分鐘內標記 – parliament