URL регулярного выражения Python и сопоставление строк с новой переменной - PullRequest
0 голосов
/ 18 марта 2019

У меня есть csv URL-адресов в одном столбце и столбец строк (слов), связанных с этими URL-адресами.

Я хочу написать функцию, которая просматривает каждый URL, и, если в URL присутствует "/ 2019 /", назначьте ее новой переменной с именем "new_url" и, если "/ 2018 /" "/ 2017/ "(и т. д.) присутствует, присвойте его переменной" old_url "

Я также хочу, чтобы он проходил через каждое из слов в первом столбце, и если присутствует" 2019 "или нет года вообщеназначьте это новой переменной с именем "new_word"

пример столбцов:
hyundai sonata rebate |https://www.edmunds.com/hyundai/sonata/2018/deals

2017 Джип Рэнглер |https://www.edmunds.com/jeep/wrangler/2017/deals

2019 Honda Accord |https://www.edmunds.com/honda/accord/2019/deals

Я пытался работать с этим https://gist.github.com/gruber/8891611, но я совершенно сбит с толку и не могу заставить его работать.Есть идеи?!

1 Ответ

1 голос
/ 18 марта 2019

Просто начните с чего-то простого:

import re

sample_rows = [
    ("hyundai sonata rebate", "https://www.edmunds.com/hyundai/sonata/2018/deals"),
    ("2017 jeep wrangler", "https://www.edmunds.com/jeep/wrangler/2017/deals"),
    ("2019 honda accord", "https://www.edmunds.com/honda/accord/2019/deals"),
    ("1985 some old car", "https://www.edmunds.com/some/oldcar/1985/deals")
]

for row in sample_rows:
    keywords = row[0]
    url = row[1]
    # the url
    if "/2019/" in url:
        new_url = url
        print(f"new_url={new_url}")
    elif re.search("/(?:(?:20)|(?:19))\d{2}/", url):
        old_url = url
        print(f"old_url={old_url}")
    # the "words"
    if "2019" in keywords:
        new_word = keywords
        print(f"new_word={new_word}")
    elif re.search("(?:(?:20)|(?:19))\d{2}", keywords) is None:
        new_word = keywords
        print(f"new_word={new_word}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...