我正在尝试从包含3个不同时间戳的字符串中提取时间。
字符串:
Current time at \\\\gt2-dmsql1cst is 6/1/2015 11:59:49 AM\r\n\r\nLocal time (G
MT-05:00) at \\\\gt2-dmsql1cst is 6/1/2015 10:59:49 AM\r\n\r\nThe command comple
ted successfully.\r\n\r\n
我只需要"Local Time"
之后的时间。
我怎么能抓住这个?
答案 0 :(得分:1)
您可以使用正则表达式匹配Local time
之后的所有内容,然后在此时间设置capturing group。
(?si)Local time.*?(\d{2}:\d{2}:\d{2}\s+[AP]M)
请参阅demo
正则表达式解释:
(?si)
- 忽略大小写并使.
与换行符匹配的选项Local time.*?
- 匹配Local time
和任何其他字符(\d{2}:\d{2}:\d{2}\s+[AP]M)
- 包含时间信息的捕获组:
\d{2}
- 匹配2位数字:
- 匹配文字冒号\d{2}:\d{2}
- 匹配2位数字,冒号和2位数字\s+
- 匹配1个或更多空格[AP]M
- 匹配AM
或PM
或am
... 答案 1 :(得分:1)