如何修改Python正则表达式以精准提取带前置引号的时间格式?
解决Python正则提取带双引号的时间格式问题
要匹配前置带有双引号的HH:MM:SS格式时间,同时排除不带引号的同类格式(比如07:59:00),可以使用正向零宽断言精准定位前置双引号,且不会将引号包含在提取结果中。
修正后的正则表达式
(?<=")\d{2}:\d{2}:\d{2}
(?<="):正向零宽后行断言,确保目标时间的前一个字符是双引号,且该引号不会被纳入匹配结果\d{2}:\d{2}:\d{2}:匹配标准的HH:MM:SS时间格式
代码示例
提取单个匹配项
import re lineItems = ["2022-08-15T07:59:00,row1,\"00:01:00\",\"2022-08-15T08:00:00\"] line_str = str(lineItems) # 查找第一个符合条件的时间 match_result = re.search(r'(?<=")\d{2}:\d{2}:\d{2}', line_str) if match_result: print(match_result.group()) # 输出:00:01:00
提取所有符合条件的时间
如果有多个带引号的时间需要提取,改用re.findall:
matches = re.findall(r'(?<=")\d{2}:\d{2}:\d{2}', line_str) print(matches) # 输出:['00:01:00']
说明
这个正则会自动排除2022-08-15T07:59:00中的07:59:00(因为它前面没有双引号),同时只会提取双引号后的纯时间字符串,不会包含引号本身。
内容的提问来源于stack exchange,提问作者YIF99
相关产品推荐
相关产品推荐

