如何编写正则匹配完整亚马逊链接并替换为指定字符串?
修复亚马逊URL完整替换的正则表达式问题
你的代码里,正则表达式https://www.amazon.it/[a-zA-Z0-9]+只能匹配到https://www.amazon.it/dp这部分(因为[a-zA-Z0-9]+只匹配连续字母数字,遇到后续的斜杠就停止匹配),所以替换后会残留/B08F9LM1FB/?tag=seller050-21&psc=1,导致输出URL/...。
要实现完整URL替换,只需把正则里的[a-zA-Z0-9]+替换成\S*,\S*能匹配所有非空白字符,覆盖URL中从域名后到字符串结尾(或空格)的所有内容:
import re # 调整后的正则,匹配完整的亚马逊短链和意大利站URL regex = r"https://amzn.to/\S*|https://www.amazon.it/\S*" string = "https://amzn.to/3Ueforw" string1 = "https://www.amazon.it/dp/B08F9LM1FB/?tag=seller050-21&psc=1" string = re.sub(regex, "URL", string) string1 = re.sub(regex, "URL", string1) print(string) # 输出: URL print(string1) # 输出: URL
如果你的使用场景中,URL可能出现在带空格的文本里(比如"点击这里 https://www.amazon.it/dp/B08F9LM1FB/?tag=seller050-21&psc=1 查看"),\S*也能准确匹配到URL的完整部分,不会误匹配后面的内容。
内容的提问来源于stack exchange,提问作者JayJona
相关产品推荐
相关产品推荐

