我有基於文件的擴展名錶達一些後綴塊附件:正則表達式匹配無擴展名的文件名字符串
/^Content-(Disposition|Type).*name\s*=\s*"?(.*(\.|=2E)(
ade|adp|asp|bas|bat|chm|cmd|com|cpl|crt|dll|exe|
hlp|ht[at]|
inf|ins|isp|jse?|lnk|md[betw]|ms[cipt]|nws|
\{[[:xdigit:]]{8}(?:-[[:xdigit:]]{4}){3}-[[:xdigit:]]{12}\}|
ops|pcd|pif|prf|reg|sc[frt]|sh[bsm]|swf|
vb[esx]?|vxd|ws[cfh]))(\?=)?"?\s*(;|$)/x
,你可以看到,這個匹配Content-Disposition: attachment; filename=anythng.xyz
其中xyz可以是多種檔案上面給出的擴展(bat,com,exe,sh ...)。
我徘徊如何包括附件時沒有擴展名的情況?
經常有沒有擴展名的二進制文件,* nix OS是那些沒有擴展名的文件。
所以我想在給定的表達,包括選項來與之匹配擴展名的文件名字符串,如:Content-Disposition: attachment; filename=anythng
如何有?謝謝。
您可以通過附加'?'作任何組的正則表達式可選。 – h2ooooooo 2015-03-13 12:00:19
如果你想匹配「任何可執行文件」,那麼你錯過了幾個Windows。你爲什麼要這樣做,因爲這聽起來像一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – Richard 2015-03-13 12:06:45
@理查德,好吧,我正在努力做到最好,這比任何事情都好。當然我會錯過一些擴展。 – greenV 2015-03-13 12:26:29