【发布时间】:2019-05-28 15:57:48
【问题描述】:
我想匹配以下内容:
- [Michael - YouTube](https://www.youtube.com/watch?v=3nsoN-LS8RQ){1:00,1:03}
并将其转换为
- [Michael - YouTube; **Start:1m 0s; End:1m 3s**](https://www.youtube.com/watch?v=3nsoN-LS8RQ&t=60s)
<center><iframe width="400" height="300" src="https://www.youtube.com/embed/3nsoN-LS8RQ?start=60&end=63" frameborder="0" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center>
我试过了:
# Data.md
- [Michael - YouTube](https://www.youtube.com/watch?v=3nsoN-LS8RQ){1:00,1:03}
# python3 Test.py < Data.md
import sys
import re
Output = sys.stdin.read()
Pattern = "(.*)\[([^]]*YouTube)\]\(https://www.youtube.com/watch\?.*v=([^&]*)[^)]*\)\{[ ]?*([0-9]?*)[^,]?*:[ ]?*([0-9]?*)[^,]?*[,]?[ ]?*([0-9]?*)[^,]?*:[ ]?*([0-9]?*)[^,]?*\}"
tStart=int(\\4) * 60 + int(\\5)
tEnd=int(\\6) * 60 + int(\\7)
Replace = '\\1[\\2 **Start:\\4m \\5s End:\\6m \\7s**](https://www.youtube.com/watch\?v=\\3&t=',tStart,'s\) <center><iframe width="400" height="300" src="https://www.youtube.com/embed/\\3?start=',tStart,'\&end=',tEnd,' "frameborder="0" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center>\n\n'
Output = re.sub(Pattern, Replace, Output)
print('Output')
我如何计算tStart=int(\\4) * 60 + int(\\5) 和tEnd=int(\\6) * 60 + int(\\7)
【问题讨论】:
标签: regex python-3.x substitution arithmetic-expressions calculation