首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:查找URL并添加查询字符串对

Python:查找URL并添加查询字符串对
EN

Stack Overflow用户
提问于 2010-11-30 22:53:56
回答 3查看 572关注 0票数 1

我正在尝试在Django webapp应用程序中关联一些遗留文本。这是一个非常简单的作用域。文本中有一些亚马逊URL,我想在它们的末尾加上我的?tag=xxx标识符。

我已经编写了一个模板筛选器,可以快速传递文本,但我在编写regex逻辑时有点卡住了。

代码语言:javascript
复制
t = text_from_template_engine
return re.sub(r'(https?://(?:www\.)?amazon\.co\.uk[\S]+)', r'\\\1?tag=xxx', t)

这似乎在非常基本的级别上工作,但如果URL已经有一个查询字符串(就像许多有机亚马逊URL默认做的那样),我将需要一个与号而不是问号。

可能有一种快速的方法来检测两个问号并替换第二个问号。我对这个建议持开放态度。

我真正寻找的是一个regex-replace,我可以将找到的字符串传递给另一个希望返回替换字符串的方法(在这个方法中,我可以检测现有的问号)。类似PHP的preg_replace_callback (et al)。这真的存在吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-30 22:59:55

是的,re.sub的第二个参数可以是一个函数,它接受一个match对象并返回一个字符串。参见the documentation

票数 2
EN

Stack Overflow用户

发布于 2010-11-30 22:57:16

可能有一种快速的方法来检测两个问号并替换第二个问号。我对这个建议持开放态度。

这将得到两个问号。

代码语言:javascript
复制
(\?|(\?\?))

我相信双问号的非被动组编号将是4美元,但您需要仔细检查,然后可以在替换中添加回单问号。

票数 0
EN

Stack Overflow用户

发布于 2010-11-30 22:57:23

找到网址后,最好使用parsing it properly,而不是将其修改为正则表达式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4315033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档