import string
punct=string.punctuation
s='Today, 3:30pm - Group Meeting:am to discuss "big idea" by our madam'
for item in s.split():
try:
t=time.strptime(item,"%H:%M%p")
except:
item=''.join([ i for i in item if i not in punct])
else:
item=item
print item,
输出
$ ./python.py
Today 3:30pm Group Meetingam to discuss big idea by our madam
# change to s='Today, 15:30pm - Group 1,2,3 Meeting to di4sc::uss3: 2:3:4 "big idea" on 03:33pm or 16:47 is also good'
$ ./python.py
Today 15:30pm Group 123 Meeting to di4scuss3 234 big idea on 03:33pm or 1647 is also good
# this: D:DD, DD:DDam/pm 12/24 hr
re = r':(?=..(?<!\d:\d\d))|[^a-zA-Z0-9 ](?<!:)'
冒号前面必须至少有一位数字,后面必须至少有两位数字:那就是时间。所有其他冒号将被视为文本冒号。
工作原理
: // match a colon
(?=.. // match but not capture two chars
(?<! // start a negative look-behind group (if it matches, the whole fails)
\d:\d\d // time stamp
) // end neg. look behind
) // end non-capture two chars
| // or
[^a-zA-Z0-9 ] // match anything not digits or letters
(?<!:) // that isn't a colon
当应用到这个愚蠢的文本时:
Today, 3:30pm - Group 1,2,3 Meeting to di4sc::uss3: 2:3:4 "big idea" on 03:33pm or 16:47 is also good
…将其更改为:
Today, 3:30pm Group 123 Meeting to di4scuss3 234 big idea on 03:33pm or 16:47 is also good
Python。
输出
注:方法应该改进,只在必要时检查有效时间(通过附加条件),但我暂时不做检查。
我假设您也希望保留空格,这个实现是在python中实现的,但是它是PCRE,所以应该是可移植的。
输出:“今天下午3:30小组会议讨论大创意”
回答得稍微清楚一点(没有两个空格)
输出:“今天下午3:30小组会议讨论大创意”
冒号前面必须至少有一位数字,后面必须至少有两位数字:那就是时间。所有其他冒号将被视为文本冒号。
工作原理
当应用到这个愚蠢的文本时:
…将其更改为:
相关问题 更多 >
编程相关推荐