63

我试图找到一些例子,但没有运气。有人知道网上的一些例子吗?我想知道它在找不到时返回什么,以及如何从头到尾指定,我猜这将是 0、-1。

4

9 回答 9

112

我不确定你在找什么,你的意思是find()

>>> x = "Hello World"
>>> x.find('World')
6
>>> x.find('Aloha');
-1
于 2009-03-23T19:00:13.940 回答
44

你也可以使用str.index

>>> 'sdfasdf'.index('cc')
Traceback (most recent call last):
  File "<pyshell#144>", line 1, in <module>
    'sdfasdf'.index('cc')
ValueError: substring not found
>>> 'sdfasdf'.index('df')
1
于 2009-03-23T19:00:24.843 回答
30

文档中

str.find(sub[, start[, end]])

返回在 slice 中找到子字符串subs[start:end]的字符串中的最低索引。可选参数startend被解释为切片表示法。-1如果未找到sub则返回。

所以,一些例子:

>>> my_str = 'abcdefioshgoihgs sijsiojs '
>>> my_str.find('a')
0
>>> my_str.find('g')
10
>>> my_str.find('s', 11)
15
>>> my_str.find('s', 15)
15
>>> my_str.find('s', 16)
17
>>> my_str.find('s', 11, 14)
-1
于 2009-03-23T19:03:50.170 回答
17

老实说,在这种情况下,我只是在命令行上打开 Python 并开始胡闹:

 >>> x = "Dana Larose is playing with find()"
 >>> x.find("Dana")
 0
 >>> x.find("ana")
 1
 >>> x.find("La")
 5
 >>> x.find("La", 6)
 -1

Python 的解释器使这种实验变得容易。(对于具有类似解释器的其他语言也是如此)

于 2009-03-23T19:02:04.357 回答
6

如果要在文本中搜索字符串的最后一个实例,可以运行 rfind。

例子:

   s="Hello"
   print s.rfind('l')

输出:3

*无需导入

完整的语法:

stringEx.rfind(substr, beg=0, end=len(stringEx))
于 2012-09-04T06:44:36.190 回答
2

find( sub[, start[, end]])

返回找到子字符串 sub 的字符串中的最低索引,使得 sub 包含在范围 [start, end] 中。可选参数 start 和 end 被解释为切片表示法。如果未找到 sub,则返回 -1。

文档

于 2009-03-23T19:01:32.797 回答
0

试试这个:

with open(file_dmp_path, 'rb') as file:
fsize = bsize = os.path.getsize(file_dmp_path)
word_len = len(SEARCH_WORD)
while True:
    p = file.read(bsize).find(SEARCH_WORD)
    if p > -1:
        pos_dec = file.tell() - (bsize - p)
        file.seek(pos_dec + word_len)
        bsize = fsize - file.tell()
    if file.tell() < fsize:
        seek = file.tell() - word_len + 1
        file.seek(seek)
    else:
        break
于 2013-09-28T06:11:36.223 回答
0

如果 x 是一个字符串并且您搜索 y 这也是一个字符串,它们有两种情况: 案例 1: y 存在于 x 所以 x.find(y) = x 中 y 的索引(位置)。 情况 2: y 不存在,因此 x.find (y) = -1 这意味着在 x 中找不到 y。

于 2018-02-04T17:29:23.880 回答
0

尝试

myString = 'abcabc'
myString.find('a')

这会给你索引!!!

于 2020-09-30T18:39:48.013 回答