2012-12-04 42 views
0

我有文件與abc_abc0006_2012-11-26_1420_2121.11182012.zip命名,所以我想搜索所有的文件開始與wei_wei0006和結束與.zip和在此之間它將只包含數字,日期和允許-._字符串。任何人有如何使用reg x,我有一個^abc_abc0006_[0-9-._]+.zip$這是行不通的。任何想法?如何創建下面的字符串的java regx

我已經測試了下面的一個它工作正常,但它有一個問題,它正在拾取文件類型下面也。

的解決方案是:"abc_abc0006_*.zip" 結果:

  • OP1:abc_abc0006_2012-11-26_1420_2121.11182012.zip
  • OP1:abc_abc0006_2012-12-02_1321_some_alfhabet_text_20121202.zip

有效的結果應該選擇以下文件只 abc_abc0006_2012-11-26_1420_2121.11182012.zip

+0

你的意思是'abc_abc0006 _。*。zip',對吧?否則我懷疑你實際上並沒有使用正則表達式。 – cha0site

+0

是的,這是正確的,我使用Talend ETL工具來獲得基於上述正則表達式的文件列表。 Talend是代碼生成器,因此它將最終將所有邏輯轉換爲Java代碼。 – UmeshR

回答

1

嘗試^abc_abc0006_[-0-9._]+\.zip$

或更少神奇地,^abc_abc0006_[0-9\-._]+\.zip$。你的問題是-在角色類中有特殊的含義,你需要以某種方式逃避它。

+0

如果'-'是第一個或最後一個,它也失去了它的特殊含義 – Bohemian

+0

@Bohemian:是的,正如你可以在我的第一個版本中看到的那樣。你可以通過首先/最後放置它,或者用'\'明確地轉義它。 – cha0site

+0

我試過你的解決方案,但沒有運氣。 – UmeshR

-2

使用以下正則表達式。我檢查了一下,那是正常工作。

[[\\w]||[\\s]||[_]||[-]||[.]]*.zip 
+0

我的正則表達式有什麼問題 – MGPJ

+0

它很難閱讀,它可以包含空格(不允許)並且不能包含數字(必填)。即使'.zip'是一個需求,它也可以用'Xzip'而不是'.zip'結尾,並且無論如何。 – jlordo

+0

另外,在java正則表達式中,OR被寫爲'|'而不是'||',但我不確定這是否甚至可以在字符類中使用。 – jlordo

0

你需要把 「 - 」 末

^abc_abc0006_ [0-9 ._-] + \ $拉鍊

+1

我想。適用於正則表達式中的任何字符,而不是'。' –

+1

@vishal_aim:通常是的,但這並不意味着在角色類中。 – cha0site

0

使用

"abc_abc0006_[\\d_.-]+\\.zip" 

如果它不工作,告訴我們你是如何使用它。該錯誤必須在其他地方。

+0

它不起作用 – UmeshR

+0

我的車也沒有工作。你需要更具體以獲得有用的幫助。我也仔細看了看,在6之前有一個'0'。看到我更新的答案。 – jlordo

+0

我編輯我的問題,請參閱更多細節,我再次測試沒有填充任何文件。 – UmeshR

相關問題