正则表达式只是让人头疼。我想将两个负向后查找和负向后查找正则表达式链接在一起。
第一个:
re.sub(r'(?<!([0-1\b][0-9]|[2][0-3])):(?!([0-5][0-9])((?i)(am)|(pm)|(a.m)|(p.m)|(a.m.)|(p.m.))?\b)',':\n',s)
第二个:
re.sub(r'(?<!([ps][tp])):(?!([\/][\/]))',':\n',s)
它们都分别工作,如果不正确,则添加\n
。一个是时间,另一个是URL。如果冒号不属于URL和时间,我该如何将它们加在一起,以便在冒号后立即添加\n
。
这是我问题的第一部分: How to split string with colons but not if it is a time?
答案 0 :(得分:0)
最终走了很长一段路,并使用sub来修补被先前的负向后查找和负向超前正则表达式分解的URL。啊。
s = re.sub(r'(?<!([0-1\b][0-9]|[2][0-3])):(?!([0-5][0-9])((?i)(am)|(pm)|(a.m)|(p.m)|(a.m.)|(p.m.))?\b)',':\n',s,flags=re.IGNORECASE)
reg = re.compile(re.escape('http:\n//'), re.IGNORECASE)
reg1 = re.compile(re.escape('https:\n//'), re.IGNORECASE)
reg.sub('http://', s)
reg.sub('https://', s)