文件名的格式为IPCM_ $ date_ $ sequenceNumber.tar.gz 例如。 IPCM_20111012151700_00001.tar.gz 在groovy中获取序列号令牌的最佳方法是什么?
答案 0 :(得分:1)
非常静态的方式是
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]
答案 1 :(得分:0)
这个怎么样?
raw = 'IPCM_20111012151700_00001.tar.gz'
seq = raw.tokenize('_').last()-'.tar.gz'
或者,如果您有随机文件扩展名:
raw = 'IPCM_20111012151700_00011.tar.gz'
seq = raw.tokenize('_').last().tokenize('.').first()
答案 2 :(得分:-1)
我没有一个groovy编译器,但请尝试:
def seqNum = (raw ~= /IPCM_[0-9+]_([0-9+]).tar.gz/)[0]
这可能有点不对,但你应该得到要点。 (使用正则表达式匹配)