我有这个网址:

 http://www.example.com/en/news/2016/07/17/1207151/%D9%81%D8%AA%D9%88%D8%A7%DB%8C-%D8%B1%D9%87%D8%A8%D8%B1-


我将在这里提取1207151

这是我的正则表达式:

pattern = '(http[s]?:\/\/)?([^\/\s]+\/)+[^/]+[^/]+[^/]+[^/]/(?<field1>[^/]+)/'


但这是错误的!

我怎么了

最佳答案

您可以在python代码中使用此正则表达式:

>>> url = 'http://www.example.com/en/news/2016/07/17/1207151/%D9%81%D8%AA%D9%88%D8%A7%DB%8C-%D8%B1%D9%87%D8%A8%D8%B1-'
>>> re.search(r'^https?://(?:([^/]+)/){7}', url).group(1)
'1207151'


([^/]+)/){7}将匹配任何一个非正斜杠中的1个或多个,并且匹配一次/ 7次,从而使我们在捕获的#1组中最后一次匹配。

关于python - 使用正则表达式从URL提取子路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39929845/

10-09 20:59