我正在Notepad ++中编写一个时间表python脚本来优化我的工作流程。我的数据安排如下:
2014-07-16_B_019 John Smith -Left(7:00pm)
2014-07-16_B_089 Jack Smith -Late(8:00pm)
我希望只为时间戳创建一个新字符串(例如晚上7点和晚上8点)。我确实使用了很长时间:
endNum = editor.getLineEndPosition(editor.lineFromPosition(editor.getCurrentPos())+1) #get position of line final character
stringMe = editor.getTextRange(endNum-7,endNum-1) #Convention must be met!
但对选择范围进行硬编码是不好的做法,如果我说--Left(上午11点)将会破坏
答案 0 :(得分:1)
正则表达式可能是提取此信息的最简单方法
import re
title = "2014-07-16_B_019 John Smith -Left(7:00pm)"
matches = re.search(r"""(\d{4}- #the year
\d{2}- #the month
\d{2}) #the day
.* #anything
(\d{1,2}:\d{2}) #Hour:Minute
(am|pm) #am or pm""",title,re.X)
print matches.groups()
答案 1 :(得分:1)
Python Script支持一些正则表达式;您可以使用editor.research
查找指定模式的匹配位置。要找到你想要的东西,你可以尝试例如。
r"\((\d{1,2}(?:[:.]\d{1,2})?(?:am|pm)?)\)$"