Python 3.x 在Python中查找子字符串是否包含在另一个字符串中

Python 3.x 在Python中查找子字符串是否包含在另一个字符串中,python-3.x,Python 3.x,我有一个存储阵列,每个卷都有一个序列号。我正在尝试将阵列上的序列号与操作系统记录的序列号进行匹配,例如: eui.00d118473ad54a4024a937f200014bae-这是操作系统提供的序列号(A) d118473ad54a40f200014bae-这是存储设备提供的序列号(B) 我试图让python弄清楚A是否包含B,我尝试过使用contains、find和in,但它们都返回false或-1,即使可以看到A包含B 我做错了什么 serialnumber = "eui.00d1184

我有一个存储阵列,每个卷都有一个序列号。我正在尝试将阵列上的序列号与操作系统记录的序列号进行匹配,例如:

eui.00d118473ad54a4024a937f200014bae-这是操作系统提供的序列号(A) d118473ad54a40f200014bae-这是存储设备提供的序列号(B)

我试图让python弄清楚A是否包含B,我尝试过使用contains、find和in,但它们都返回false或-1,即使可以看到A包含B

我做错了什么

serialnumber = "eui.00d118473ad54a4024a937f200014bae"
volserial = "d118473ad54a40f200014bae"
found = volserial in serialnumber
print(found)

serialnumber = "eui.00d118473ad54a4024a937f200014bae"
volserial = "d118473ad54a40f200014bae"
found = serialnumber.__contains__(volserial)
print(found)

serialnumber = "eui.00d118473ad54a4024a937f200014bae"
volserial = "d118473ad54a40f200014bae"
found = serialnumber.find(volserial)
print(found)
我试过这个:

a = "abcde"
b = "bc"
c = b in a
print(c)

它工作完全正常,您可能需要检查变量是否包含您希望它们包含的内容

看起来好像存储设备序列号拼写错误:

serialnumber: eui.00d118473ad54a4024a937f200014bae
volserial:          d118473ad54a40f200014bae
                                  ^
                                  missing 24a937
为了给你一个答案。。。如果存储设备序列号实际上是一个子字符串,并且它始终位于os生成的字符串的末尾,则使用str方法
.endwith()
将起作用:

>>> volserial in serialnumber                                                                                                                                                              
True
下面是一个例子:

>>> serialnumber = 'eui.00d118473ad54a4024a937f200014bae' 
>>> volserial = 'd118473ad54a4024a937f200014bae' 
>>> serialnumber.endswith(volserial)
True
类似地:如果存在子字符串,则关键字中的
将起作用:

>>> volserial in serialnumber                                                                                                                                                              
True
但是,
.find()
方法的目的是确定子字符串的起点位置。在本例中,如果存在子字符串,则
.find()
方法将告诉您子字符串的起始位置(在本例中,在索引6处):


“我做错了什么?”=>首先,请求调试帮助,但不提供诊断问题所需的所有信息。请用适当的标题编辑您的问题。很抱歉-在
中的补丁
中添加可以正常工作。您的两个序列号不匹配。A是
d118473ad54a4024a937f200014bae
,B是
d118473ad54a40f200014bae
。如果他们这样做,那么
中的
应该可以完美地工作。