Отсутствует регулярное выражение в Python - PullRequest
0 голосов
/ 08 февраля 2019

В настоящее время я изучаю Regex на Python, и мои ожидаемые результаты Regex не отображаются (я использую Python 3.6).Ниже приведен код для получения значений String, с которыми я запускаю свое регулярное выражение:

import json
import os
import pandas as pd
import requests
import re

url = 'http://www.trumba.com/calendars/brisbane-city-council.json'
uh = requests.get(url)

json_data = json.loads(uh.text)
json_str = json.dumps(json_data)
panda_json = pd.read_json(json_str, typ = 'frame')

Теперь я хочу получить совпадение с гиперссылкой html в 'location'

С помощью Regex я ожидаю найти совпадения, например ниже (что угодно между [<] и [>]):

<a href="http://maps.google.com/?q=33+Teevan+St%2c+Stafford+QLD+4053%2c+Australia" target="_blank">

, поэтому я используюниже Regex:

pattern = re.compile(r'/[<].*?[>]/')

и затем попытайтесь сохранить их в кадре данных

matches = re.findall(pattern, str(panda_json['location']))

x = []
for match in matches:
    x.append(match)

x = pd.DataFrame(x)

Но «x» ничего не показывает?Я уверен, что упускаю что-то очевидное.

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете просто извлечь подстроки между < и >, используя

panda_json['location'].str.extract(r'<([^>]+)>')

Шаблон <([^>]+)> соответствует < с <, а затем соответствует одному или нескольким символам, отличным от > с [^>]+ и - поскольку шаблон заключен в ( и ) - помещается в группу 1 (а .str.extract выводит только захваченное значение), а затем >соответствует > char.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...