2016-04-01 51 views
1

特定擴展名從以下列表配以除了特定的文件名正則表達式

"foo.exe" 
"foo.dmg" 
"baz.exe" 
"this-is-another-file-name.exe" 
... 

什麼java的正則表達式將所有以".exe"結束,除了一個特定的字符串"baz.exe"

感謝字符串匹配所有文件名!

編輯:我已經試過(?=\.exe$)(?!baz\.exe)

+0

如果你已經嘗試任何事情,請張貼。 –

+0

你有什麼嘗試?究竟發生了什麼問題?你有任何錯誤?那些錯誤是什麼?你試圖做什麼來修復這些錯誤?當你這樣做時發生了什麼?請記住在提出問題時包含這些內容。按照本指南確保您的問題質量很高:https://stackoverflow.com/help/how-to-ask –

回答

2

look behindbaz丟棄如果它出現在比賽的存在。 我假定你正在檢查filenames一個接一個。因此使用了錨點^$

正則表達式:^(?!baz).*\.exe$

Regex101 Demo

1

由於@Wajahat指出,這個問題可以直接從Regex: match everything but回答(第一款谷歌回答太)。

^(?!.*(baz)).*exe

  • foo.exe的:匹配
  • baz.exe:不匹配
  • whaterver.exe:匹配