如何在python中将两个字符串与某些字符进行比较

How to compare two string with some characters only in python

本问题已经有最佳答案,请猛点这里访问。

我有两个字符串要比较,下面的结果应该返回

1
2
3
4
s1 = 'toyota innova'
s2 = 'toyota innova 7'
if s1 like s2
   return true

1
2
3
4
s1 = 'tempo traveller'
s2 = 'tempo traveller 15 str'  //or tempo traveller 17 str
if s1 like s2
    return true

那么,我在python中是如何比较的呢?例如getmecab.com/round-trip/德里/agra/tempo-traveller

这表明我们找不到这个型号的名称,但如果向下滚动,就会显示出Tempo Traveller 12str/15str。所以我带这两辆出租车去寻找速度旅行者。


您可以使用in检查字符串是否包含在另一个字符串中:

1
2
'toyota innova' in 'toyota innova 7' # True
'tempo traveller' in 'tempo traveller 15 str' # True

如果只想匹配字符串的开头,可以使用str.startswith

1
2
'toyota innova 7'.startswith('toyota innova') # True
'tempo traveller 15 str'.startswith('tempo traveller') # True

或者,如果只想匹配字符串的结尾,可以使用str.endswith

1
'test with a test'.endswith('with a test') # True

您可能还需要这样检查if s2 in s1

1
2
def my_cmp(s1, s2):
    return (s1 in s2) or (s2 in s1)

输出:

1
2
3
4
5
6
7
8
9
10
11
>>> s1 ="test1"
>>> s2 ="test1 test2"
>>>
>>> my_cmp(s1, s2)
True
>>>
>>> s3 ="test1 test2"
>>> s4 ="test1"
>>>
>>> my_cmp(s3, s4)
True


您可以使用.startswith()方法。

1
2
if s2.startswith(s1):
    return True

或者可以使用in操作符,如用户312016所建议的那样。