缺少正则表达式导致Python

时间:2019-02-08 09:18:02

标签: regex python-3.x pandas

我目前正在使用Python学习Regex,但预期的Regex结果没有显示(我正在运行Python 3.6)。下面是获取正则表达式运行的字符串值的代码:

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超链接

我希望使用正则表达式可以找到以下匹配项([<]和[>]之间的任何内容)

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

所以我正在使用下面的正则表达式:

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 :(得分:0)

您可以使用

简单地提取<>之间的子字符串。
panda_json['location'].str.extract(r'<([^>]+)>')

<([^>]+)>模式将<<匹配,然后将>以外的一个或多个字符与[^>]+匹配,并且-由于该模式用将()放入组1中(.str.extract仅输出捕获的值),然后>匹配一个>字符。