【发布时间】:2015-05-29 12:21:13
【问题描述】:
循环遍历一些数据,我想捕获显示为页面 ID 的数字字符串(每行不止一个。)但是,我只想将数字字符串匹配为特定 URL 的一部分,但我不想想记录网址,只是数字。
URL 是相对的,具有可变长度的数字字符串,格式为
/view/123456.htm
这里要返回的数据是'123456'
我目前正在使用 re.findall 来识别正确的 URL,然后使用 re.sub 来提取数字字符串。
views = re.findall(r"/view/\d*?.htm", line)
for view in views:
view = re.sub(r"/view/(\d+).htm", r"\1", view)
pagelist.append(view)
有没有办法做类似的事情
views = re.findall(r"/view/(\d*?).htm", r"\1", line) #I know this doesn't work
原来的 findall() 只返回括号中的匹配部分?
【问题讨论】:
-
请edit您的问题,并包括一些您想要匹配的示例 URL 以及每个 URL 所需的输出。
-
@LutzHorn 你到底有什么不清楚的地方?
-
@hek2mgl 我可以猜测这个问题是关于什么的。但是,如果问题包含所需的输入和输出,那么这个问题和作为网站的 SO 的质量将会提高。
-
基本上我和你在一起,但我不会错过这篇文章中的任何内容。 100% 清楚应该匹配什么,问题更多是关于如何在 python 中有效地访问匹配结果。