Regex Python中缺少正则表达式会导致
我目前正在学习Python中的正则表达式,但我预期的正则表达式结果没有显示出来(我正在运行Python 3.6)。下面是获取我运行正则表达式所针对的字符串值的代码: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
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'<([^>]+)>')