簡體   English   中英

使用正則表達式從 url 中提取日期

[英]Extract dates from url with regex

我想從以下 url 中解析日期:

url='https://www.vrbo.com/el-gr/%CE%B5%CE%BD%CE%BF%CE%B9%CE%BA%CE%B9%CE%AC%CF%83% CE%B5%CE%B9%CF%82-%CE%B5%CE%BE%CE%BF%CF%87%CE%B9%CE%BA%CF%8E%CE%BD-%CE%BA% CE%B1%CF%84%CE%BF%CE%B9%CE%BA%CE%B9%CF%8E%CE%BD/p436144?adultsCount=2&arrival= 2021-05-08 &departure= 2021-05-16 '

這是我嘗試過的。

arrival_date = re.split('arrival=',url)
print(arrival_date[1])

您可以使用正則表達式(\d{4}-\d{2}-\d{2}) ,這意味着“4 位 - 2 位 - 2 位”。

import re
url = 'https://www.vrbo.com/el-gr/%CE%B5%CE%BD%CE%BF%CE%B9%CE%BA%CE%B9%CE%AC%CF%83%CE%B5%CE%B9%CF%82-%CE%B5%CE%BE%CE%BF%CF%87%CE%B9%CE%BA%CF%8E%CE%BD-%CE%BA%CE%B1%CF%84%CE%BF%CE%B9%CE%BA%CE%B9%CF%8E%CE%BD/p436144?adultsCount=2&arrival=2021-05-08&departure=2021-05-16'
date_regex = r"(\d{4}-\d{2}-\d{2})"
arrival_date = re.search(r"arrival=" + date_regex, url).group(1)
departure_date = re.search(r"departure=" + date_regex, url).group(1)
print(arrival_date)     # 2021-05-08
print(departure_date)   # 2021-05-16

假設數據始終采用這種格式,您可以這樣做:

dates = list(map(lambda date: date.split("=")[1],url.split("&")[1:]))

這將返回一個包含兩個日期的 2 元素列表,並且是一行要到達,您可以更改 [1:] 以滿足您的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM