文件名的格式爲IPCM_ $ date_ $ sequenceNumber.tar.gz E.g. IPCM_20111012151700_00001.tar.gz 在groovy中獲取序列號令牌的最佳方式是什麼?如何在Groovy中解析以下文件名?
回答
一個非常靜態的方式將
txt = 'IPCM_20111012151700_00001.tar.gz'
num = txt[-12..-8]
更多動態
txt[txt.lastIndexOf('_')+1..txt.indexOf('.')-1]
@Steven:這是你的解決方案,但工作
raw = 'IPCM_20111012151700_00001.tar.gz'
num = (raw =~ /IPCM_[0-9]+_([0-9]+).tar.gz/)
print num[0][1]
我沒有對我有Groovy編譯,但請嘗試:
def seqNum = (raw ~= /IPCM_[0-9+]_([0-9+]).tar.gz/)[0]
它可能有點不對,但你應該得到的主意。 (使用正則表達式匹配)
在http://groovyconsole.appspot.com/運行腳本(該「便攜式」groovy編譯器)陳述意外的令牌:〜@第2行第12列。 print(raw〜= /IPCM_[0-9+]_([0-9+]).tar.gz/)[0 ] '所以,這有點不對。你的正則表達式也是錯誤的。 – micfra
噢,好吧,我猜測我沒有那麼棒的代碼和正則表達式,沒有正確的工具可用。我的觀點是使用正則表達式來匹配值而不是範圍。 *編輯:哇,我只在錯誤的一方有+。 – Steven
你的提示戰爭正確,但有幾個錯誤:錯誤的代碼,錯誤的正則表達式,錯誤的索引訪問結果。這可能會讓提問者誤入歧途,進入更多的研究來解決他的問題。不應該成爲SO的答案。 – micfra
這個怎麼樣?
raw = 'IPCM_20111012151700_00001.tar.gz'
seq = raw.tokenize('_').last()-'.tar.gz'
或者,如果你有一個隨機的文件擴展名:
raw = 'IPCM_20111012151700_00011.tar.gz'
seq = raw.tokenize('_').last().tokenize('.').first()
- 1. Groovy解析文本文件
- 2. 如何解析以下文件
- 3. Groovy - JsonSlurper解析JSON文件
- 4. 如何在java或groovy中解析Cucumber功能文件?
- 5. Groovy項目(html解析,文件下載,文件創建)
- 6. 如何解析java中的文件名?
- 7. 如何在Swift中解析以下JSON?
- 8. 如何解析groovy文件中的多個類
- 9. 如何解析URL以在groovy中獲取其參數?
- 10. 如何解析以下XML?
- 11. 解析JSON在Groovy
- 12. 如何解析文件名並在Matlab中重命名
- 13. 如何按名稱解析文件?
- 14. 的Bash shell:如何解析文件名
- 15. Golang:如何解析文件名參數?
- 16. 使用以下模式解析文件
- 17. 在下載文件之前從URL解析文件名
- 18. 如何解析JavaScript中的以下JSON?
- 19. 如何解析以下JSON在Android的
- 20. 解析文件,以在Matlab
- 21. 在WinAPI中解析文件夾名稱
- 22. 如何使用groovy解析xml文件時建模java類
- 23. 如何在android中使用JSON解析解析下面提到的php文件
- 24. Im解析xml文件中的一些文本我如何解析名稱?
- 25. Groovy Xml解析命名空間
- 26. 如何克服以下問題解析json文件?
- 27. 如何正確解析以下JSON文件包括陣列
- 28. 如何在php中解析lua文件
- 29. 如何在PHP中解析XML文件
- 30. 如何在java中解析xml文件?
+1的正則表達式:-) –