我要第三下劃線和點之間的額外的字母數字,下面的例子正則表達式
CSV_20121023000854Z_MMSC_35dbc3f813.csv
預期輸出:
35dbc3f813
這regix會但是解決了這個問題(\_\w{15}\_\w{4}\_)(\w+)
,我如果字符串大小增加,它會更靈活。謝謝
我要第三下劃線和點之間的額外的字母數字,下面的例子正則表達式
CSV_20121023000854Z_MMSC_35dbc3f813.csv
預期輸出:
35dbc3f813
這regix會但是解決了這個問題(\_\w{15}\_\w{4}\_)(\w+)
,我如果字符串大小增加,它會更靈活。謝謝
爲什麼不是這樣的?
_([^_]+)\.csv
它會捕獲最後一個下劃線和.csv
之間的所有內容。
或者,你可以用你選擇的語言把它分解:在貪婪模式
>>> s = 'CSV_20121023000854Z_MMSC_35dbc3f813.csv'
>>> s.split('.')[0].split('_')[-1]
'35dbc3f813'
這裏是不關心的下劃線之間串的長度的正則表達式:
^.*?_.*?_.*?_(\w+)\..*$
匹配部分甚至可以具有(第三下劃線之後匹配)在它的下劃線。點的可以出現在第三個下劃線之前。
這裏是行動的它的一個例子: http://regex101.com/r/jT9fR0
您曾說過,有三個突出存在於輸入字符串中的字符如果確定部分字符之間,
1) _字符,那麼正則表達式應該是這樣的:
.+?_.+?_.+?_(.+)\..+
2)如果沒有,那麼正則表達式應該是這樣的:
.*?_.*?_.*?_(.+)\..*
貪婪的操作符後的問號使操作員不情願。
這是我正在尋找..謝謝 – user1902849