【发布时间】:2018-09-10 00:47:16
【问题描述】:
这简直让我发疯。我很肯定字符串开头的整个日期范围都与正则表达式匹配。然而,当我做 re.split 时,8 挂在后面。这里发生了什么,如何在该日期范围内拆分(在某些情况下,它可能位于字符串的开头和中间,因此拆分)?
import re
a = "09/05/2018-12/18/2018 Lecture Wednesday 01:30PM - 02:45PM, Room to be Announced"
b = r"([0-9]|\/|-){21}"
print re.split(b, a)
结果
['', '8', ' Lecture Wednesday 01:30PM - 02:45PM, Room to be Announced']
【问题讨论】:
-
通过使用lookbehind尝试类似的操作:
(?<=[\d/-]{21})\s+您当前的正则表达式将最后一个匹配8捕获为拆分序列。 Test your regex eg here. -
当我这样做时可以工作
[0-9\/\-]{21} -
@bobblebubble 应该可以,但是看后面比较慢
-
@Cfreak 你说得对,这很慢。
标签: python regex string parsing