我所拥有的:“在位置1朝向位置2,位置3朝向位置4和位置5朝向位置6的高峰小时交通量”
示例: “ulsoor lake jn向nagatheatre jn、okalipuram向majestic和bamboo bazaar jn到cole's park jn的高峰时段交通。”
我想要的是: 在python中使用regex提取位置。在
示例:
[('ulsoor lake jn','nagatheatre jn'),('okalipuram','majestic'),('bamboo bazaar jn',“cole's park jn”)]
我做了些什么:
>>> regex1 = '(?:\sat\s|,|and)(.*) towards (.*)(?:\.|,|and)'
>>> re.search(regex1, "peak hour traffic at ulsoor lake jn towards nagatheatre jn, okalipuram towards majestic and bamboo bazaar jn towards cole's park jn.").groups()
15: ('ulsoor lake jn towards nagatheatre jn, okalipuram towards majestic and bamboo bazaar jn',
"cole's park jn")
我得到了什么:
('ulsoor lake jn朝向nagatheatre jn,okalipuram朝向majestic and bazaar jn', “科尔公园”(cole's park jn))
可以看出,只有当有子表达式与模式匹配时,它才匹配外部表达式。请帮忙。谢谢您。
你真的需要一些东西。首先,正如我的评论所说,使用},这样你的捕获就不会贪婪了。在
(.*?)
而不是{第二,使用前瞻性断言,这样在确定捕获的结束位置时,就不会推进解析器
第三,使用
findall
代替search
。在相关问题 更多 >
编程相关推荐