[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. >>> import re
  2. >>> text='00:00:23.844 ---> 00:00:26.334'
  3. >>> num=list(map(float,re.findall(r'\d+\.\d+',text)))
  4. >>> print(num)
  5. [23.844, 26.334]
  6. >>> for i in range(len(num)):
  7. num[i]+=1.5
  8. >>> print(num)
  9. [25.344, 27.834]
复制代码
回复 1# netdzb

TOP

回复 3# netdzb


    没错,但re.findall是正则查找所有符合条件的字符串,而不是正则替换。list是防止map在python3的环境下返回迭代器,提高兼容性

TOP

本帖最后由 wujunkai 于 2020-4-19 13:16 编辑

回复 5# netdzb
  1. import re
  2. text='''00:00:23.844 ---> 00:00:26.334
  3. 00:00:23.844 ---> 00:00:26.334
  4. 00:00:23.844 ---> 00:00:26.334
  5. 00:00:23.844 ---> 00:00:26.334
  6. 00:00:23.844 ---> 00:00:26.334'''
  7. timeline = text.split('\n')
  8. for text in timeline:
  9.     num=list(map(float,re.findall(r'\d+\.\d+',text)))
  10.     for i in range(len(num)):
  11.         'num+=1.5' ##你怎么能要求一个数组做出这么过分的事!!
  12.         num[i]+=1.5
  13.     print(num)
复制代码

TOP

回复 8# netdzb
  1. ucdos = []
  2. for text ine timeline:
  3.     num=list(map(float,re.findall(r'\d+\.\d+',text)))
  4.     ucdos+=num
复制代码
list是可以相加的

TOP

回复 7# netdzb


    要返回一个list,那你就不要分割text啊

TOP

回复 12# netdzb


    这种事你去找IEEE

TOP

返回列表