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

zjm*_*126 7 python string

a='1234;5'
print a.index('s')
Run Code Online (Sandbox Code Playgroud)

错误是:

> "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
Run Code Online (Sandbox Code Playgroud)

谢谢

Dan*_*l G 13

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

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

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

>>> print 's' in a
False
>>> print 's' not in a
True
Run Code Online (Sandbox Code Playgroud)


ken*_*ytm 8

print ('s' in a)     # False
print ('1234' in a)  # True
Run Code Online (Sandbox Code Playgroud)

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

print a.find('s')    # -1
print a.find('1234') # 0
Run Code Online (Sandbox Code Playgroud)


gho*_*g74 5

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

if "s" in mystring:
   print "do something"
Run Code Online (Sandbox Code Playgroud)

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


wes*_*cpy 5

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

有 2 个姊妹方法被调用str.rfind()str.rindex()它们从字符串的末尾开始搜索,然后向开头进行搜索。

此外,正如其他人已经表明的那样,in运算符(以及not in)也完全有效。

最后,如果您尝试在字符串中查找模式,您可以考虑正则表达式,尽管我认为太多人在过度使用它们时使用它们。换句话说,“现在你有两个问题。”

就目前我掌握的所有信息而言,这就是全部。但是,如果您正在学习 Python 和/或学习编程,我给我的学生提供的一项非常有用的练习是尝试自己用 Python 代码构建*find()and *index(),甚至是inand not in(尽管是函数)。您将获得遍历字符串的良好实践,并且您将更好地理解现有字符串方法的工作原理。

祝你好运!