gpt4 book ai didi

python - python中的字符串比较

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:14 25 4
gpt4 key购买 nike

我有一个字符串数组,例如

urls_parts=['week', 'weeklytop', 'week/day']

而且我需要监控这个字符串是否包含在我的 url 中,所以这个例子只需要由 weeklytop 部分触发:

url='www.mysite.com/weeklytop/2'
for part in urls_parts:
if part in url:
print part

但它当然也是由“周”触发的。正确的做法是什么?

糟糕,让我详细说明一下我的问题。我需要该代码在 url='www.mysite.com/week/day/2' 和 part='week' 时不触发唯一需要触发的 url 是当 part='week' 和 url='www.mysite.com/week/2' 或 'www.mysite.com/week/2-second' 时

最佳答案

我就是这样做的。

import re
urls_parts=['week', 'weeklytop', 'week/day']
urls_parts = sorted(urls_parts, key=lambda x: len(x), reverse=True)
rexes = [re.compile(r'{part}\b'.format(part=part)) for part in urls_parts]

urls = ['www.mysite.com/weeklytop/2', 'www.mysite.com/week/day/2', 'www.mysite.com/week/4']
for url in urls:
for i, rex in enumerate(rexes):
if rex.search(url):
print url
print urls_parts[i]
print
break

输出

www.mysite.com/weeklytop/2
weeklytop

www.mysite.com/week/day/2
week/day

www.mysite.com/week/4
week

@Roman 建议按长度排序

关于python - python中的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com