首页 > 解决方案 > 使用正则表达式作为 URL 地址?

问题描述

我正在使用 API 抓取一些数据,并且正在搜索具有屏幕名称的数据。我有名称列表,但屏幕名称的格式不同。

例如,Kevin Walker 的网名是 Kevin Walker3。因此,当我遍历所有名称时,我想在 URL 的末尾添加正则表达式,以便我可以搜索 Kevin Walker3 或 Kevin Walker294 或名称后的任何数字。

我的代码如下所示:

intregex = re.compile(r'[-+]?[0-9]+$')
test = zillow_url+"zws-id="+myip+"&screenname="+name+intregex+"&output=json"

我收到以下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-253-9bd9aba62594> in <module>
      1 intregex = re.compile(r'[-+]?[0-9]+$')
----> 2 test = zillow_url+"zws-id="+Sushant+"&screenname="+name+intregex+"&output=json"

TypeError: can only concatenate str (not "re.Pattern") to str

有什么方法可以在字符串中使用正则表达式吗?任何提示或帮助将不胜感激!

标签: pythonregexapi

解决方案


如果它是......你的代码会更接近(但绝不会工作)

intregex = re.compile(r'[-+]?[0-9]+$')
test = r'zillow_url+"zws-id="+myip+"&screenname="+name+blah+"&output=json"'
intregex.findall(test)

但这行不通。所以,也许看看这个,看看它做了什么......

import re

pattern = re.compile(r'^.*?&(.*?)\+.*?$')

my_string = r'https://helloworld.com-10.00.00.01&MarkyMarkandtheFunkyBunch71+Mark&abc1234'

print(pattern.findall(my_string))

输出:

['MarkyMarkandtheFunkyBunch71']

也许这有助于让你更接近?显然,您编译的正则表达式模式必须与它正在检查的 URL 结构相匹配。


推荐阅读