Я пытаюсь найти несколько примеров, но безуспешно. Кто-нибудь знает примеры в сети? Я хотел бы знать, что он возвращает, когда не может найти, и как указать от начала до конца, что, я думаю, будет 0, -1.
Примеры поиска строки в Python
Ответы (9)
вы также можете использовать 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
Я не уверен, что вы ищете, вы имеете в виду find()
?
>>> x = "Hello World"
>>> x.find('World')
6
>>> x.find('Aloha');
-1
Из документации:
str.find(sub[, start[, end]])
Возвращает наименьший индекс в строке, где подстрока sub находится в срезе
s[start:end]
. Необязательные аргументы start и end интерпретируются как в нотации среза. Вернуть-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
Честно говоря, это такая ситуация, когда я просто открываю 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 упрощает подобные эксперименты. (То же самое касается других языков с аналогичным интерпретатором)
Если вы хотите найти последний экземпляр строки в тексте, вы можете запустить rfind.
Пример:
s="Hello"
print s.rfind('l')
выход: 3
* импорт не требуется
Полный синтаксис:
stringEx.rfind(substr, beg=0, end=len(stringEx))
find( sub[, start[, end]])
Возвращает наименьший индекс в строке, в которой найдена подстрока, так что подстрока содержится в диапазоне [начало, конец]. Необязательные аргументы start и end интерпретируются как в нотации среза. Вернуть -1, если подпрограмма не найдена.
Из документов.
Попробуй это:
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
если x является строкой, и вы ищете y, который также является строкой, это два случая: case 1: y существует в x, поэтому x.find(y) = the индекс (позиция) y в x . случай 2: y не существует, поэтому x.find (y) = -1 означает, что y не найден в x.
Пытаться
myString = 'abcabc'
myString.find('a')
Это даст вам индекс!!!