Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Python中缺少正则表达式会导致_Regex_Python 3.x_Pandas - Fatal编程技术网

Regex Python中缺少正则表达式会导致

Regex Python中缺少正则表达式会导致,regex,python-3.x,pandas,Regex,Python 3.x,Pandas,我目前正在学习Python中的正则表达式,但我预期的正则表达式结果没有显示出来(我正在运行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_da

我目前正在学习Python中的正则表达式,但我预期的正则表达式结果没有显示出来(我正在运行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')
现在,我想对“location”中的html超链接进行匹配

使用正则表达式,我希望找到如下匹配项(介于[]之间的任何项):


但是“x”没有显示任何内容?我确信我遗漏了一些明显的东西。

您可以使用

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

]+)>
模式将
]+
匹配,并且-由于模式包含在
)中,因此将其放入组1(并仅输出捕获的值),然后
匹配一个
字符。

您可以使用

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

]+)>
模式将
]+
匹配,并且-由于模式包含在
)中,因此将其放入组1(并仅输出捕获的值),然后
匹配一个
字符。

您可能正在寻找
panda_json['location'].str.extract(r']+>)
请注意,您确实应该这样做,而且python有一个令人愉快的库,可以处理从HTMLTank解析和提取数据@WiktorStribiż。我会找出正则表达式的完整定义。谢谢你的帮助。@Aaron也谢谢你的建议和指向那篇文章。我将深入探讨为什么我们应该避免使用正则表达式解析HTML(尽管我有点困惑..Wiktor的解决方案似乎有效..主要问题是HTML是一种非常宽容的语言,试图解释正则表达式中的所有陷阱是不值得的,特别是当其他工具已经这么做时。即使是在您的简单情况下,也可能会出现一个
块或
,您可能正在寻找
panda_json['location'].str.extract(r']+>)
请注意,您确实应该这样做,而且python有一个令人愉快的库,可以处理从HTMLTank解析和提取数据@WiktorStribiż。我会找出正则表达式的完整定义。谢谢你的帮助。@Aaron也谢谢你的建议和指向那篇文章。我将深入探讨为什么我们应该避免使用正则表达式解析HTML(尽管我有点困惑..Wiktor的解决方案似乎有效..主要问题是HTML是一种非常宽容的语言,试图解释正则表达式中的所有陷阱是不值得的,特别是当其他工具已经这么做时。即使是在简单的情况下,也可能会出现
块或

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

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

x = pd.DataFrame(x)
panda_json['location'].str.extract(r'<([^>]+)>')