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