我目前正在使用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”什么都不显示?我确定我缺少明显的东西。
答案 0 :(得分:0)
您可以使用
简单地提取<
和>
之间的子字符串。
panda_json['location'].str.extract(r'<([^>]+)>')
<([^>]+)>
模式将<
与<
匹配,然后将>
以外的一个或多个字符与[^>]+
匹配,并且-由于该模式用将(
和)
放入组1中(.str.extract
仅输出捕获的值),然后>
匹配一个>
字符。