如何查找字符串是否包含在另一个字符串中

时间:2010-04-07 06:48:26

标签: python string

a='1234;5'
print a.index('s')

错误是:

> "D:\Python25\pythonw.exe"  "D:\zjm_code\kml\a.py" 
Traceback (most recent call last):
  File "D:\zjm_code\kml\a.py", line 4, in <module>
    print a.index('s')
ValueError: substring not found

感谢

7 个答案:

答案 0 :(得分:10)

请尝试使用find() - 这将告诉您字符串中的位置:

a = '1234;5'
index = a.find('s')
if index == -1:
    print "Not found."
else:
    print "Found at index", index

如果您只是想知道 字符串是否在那里,您可以使用in

>>> print 's' in a
False
>>> print 's' not in a
True

答案 1 :(得分:6)

print ('s' in a)     # False
print ('1234' in a)  # True

如果您还需要索引,请使用find,但不要引发异常。

print a.find('s')    # -1
print a.find('1234') # 0

答案 2 :(得分:3)

如果您只想检查子字符串是否在字符串中,则可以使用in运算符。

if "s" in mystring:
   print "do something"

否则,您可以使用find()并检查-1(未找到)或使用index()

答案 3 :(得分:3)

str.find()str.index()几乎完全相同。最大的区别是,当找不到字符串时,str.index()会抛出错误,就像你得到的那样,而str.find()会返回-1,而其他人已经发布了错误。

有两个名为str.rfind()str.rindex()的姐妹方法从字符串的末尾开始搜索,并朝着开头工作。

此外,正如其他人已经展示的那样, in 运算符(以及 not in )也完全有效。< / p>

最后,如果您正在尝试在字符串中查找模式,您可以考虑使用正则表达式,但我认为有太多人在它们过度使用时会使用它们。在其他(着名)单词中,“now you have two problems。”

就我现在拥有的所有信息而言。但是,如果你正在学习Python和/或学习编程,我给学生们的一个非常有用的练习就是尝试自己在Python代码中构建*find()*index(),甚至 {{ 1}} in (虽然是功能)。你可以通过字符串遍历良好的练习,就现有字符串方法的工作方式你将更好地理解。

祝你好运!

答案 4 :(得分:1)

def substr(s1, s2):  # s1='abc' , s2 = 'abcd'
    i = 0
    cnt = 0
    s = ''
    while i < len(s2):
        if cnt < len(s1):
            if s1[cnt] == s2[i]:
                cnt += 1
                s += s2[i]
            else:
                cnt = 0
                s = ''
        i += 1
    if s == s1:
        print(f'{s1} is substring of {s2}')
    else:
        print(f'{s1} is not a substring of {s2}') 

答案 5 :(得分:0)

这是检查字符串中是否存在子字符串的正确方法。

def sea(str,str1):

return View("Show", entries);

答案 6 :(得分:0)

让我们根据以下提到的方法尝试一下。

方法1:

if string.find("substring") == -1:
 print("found")
else:
 print("not found")

方法2:

 if "substring" in "string":
  print("found")
 else:
   print("not found")