gpt4 book ai didi

python - 我怎样才能使我的 Python 字符串非贪婪地匹配?

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:02 26 4
gpt4 key购买 nike

给定一个如下所示的文本文件:

Samsung Galaxy S6 active SM-G890A 32GB Camo White (AT&T) *AS-IS* Cracked Screen
Samsung Galaxy S6 SM-G920 - 32GB - White Verizon Cracked screen
Samsung Galaxy S6 edge as is cracked screen

我试图想出许多不同的方法来使字符串 Samsung Galaxy S6Samsung Galaxy S6 edge 不匹配,但似乎无法实现想出一个可行的方法。字符串中没有任何意义表明电话名称已经结束并且无关信息开始,因此以这种方式将它们分开并与字典或类似的东西进行比较是行不通的。

我试图想出一些方法来编写以下内容:

phones = ['Samsung Galaxy S6', 'Samsung Galaxy S6 Edge']
lines = open('phones.txt', 'r').readlines()
for line in lines:
for phone in phones:
if phone in line and no other phone in phones is in line:
print('match found')

但我想不出构建它的正确方法 - 谁有任何想法?我确定我在这里遗漏了一些简单的东西,但就是想不通是什么。

最佳答案

首先对您的手机进行排序,以便按长度查看它们

phones.sort(key=len,reverse=True) 

然后当你找到匹配时中断

for phone in phones:
if phone in line:
print "FOUND:",repr(phone),"IN",repr(line)
break # we dont need to keep looking for other phones in this line

也许吧?

这样“Samsung Galaxy s6 Edge”在您的支票中出现在“Samsung Galaxy”之前,您将匹配最长的一个...不需要像正则表达式答案那样了解您的电话列表的更多信息

关于python - 我怎样才能使我的 Python 字符串非贪婪地匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685296/

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