Примеры поиска строки в Python - PullRequest
60 голосов
/ 23 марта 2009

Я пытаюсь найти примеры, но безуспешно. Кто-нибудь знает некоторые примеры в сети? Я хотел бы знать, что он возвращает, когда не может найти, и как указать от начала до конца, который, я думаю, будет 0, -1.

Ответы [ 8 ]

109 голосов
/ 23 марта 2009

Я не уверен, что вы ищете, вы имеете в виду find()?

>>> x = "Hello World"
>>> x.find('World')
6
>>> x.find('Aloha');
-1
42 голосов
/ 23 марта 2009

Вы также можете использовать 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
30 голосов
/ 23 марта 2009

С здесь :

str.find (sub [, start [, end]])
Вернуть самый низкий индекс в строке, где находится подстрока sub, так что sub содержится в диапазоне [start, end]. Необязательные аргументы start и end интерпретируются как обозначения срезов. Вернуть -1, если sub не найден. "

Итак, несколько примеров:

>>> str = "abcdefioshgoihgs sijsiojs "
>>> str.find('a')
0
>>> str.find('g')
10
>>> str.find('s',11)
15
>>> str.find('s',15)
15
>>> str.find('s',16)
17
>>> str.find('s',11,14)
-1
17 голосов
/ 23 марта 2009

Честно говоря, это такая ситуация, когда я просто открываю 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 упрощает подобные эксперименты. (То же самое относится и к другим языкам с похожим переводчиком)

6 голосов
/ 04 сентября 2012

Если вы хотите найти последний экземпляр строки в тексте, вы можете запустить rfind.

Пример:

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

выход: 3

* импорт не требуется

Полный синтаксис:

stringEx.rfind(substr, beg=0, end=len(stringEx))
2 голосов
/ 23 марта 2009

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

Возвращает самый низкий индекс в строке, где находится подстрока sub, так что sub содержится в диапазоне [start, end]. Необязательные аргументы start и end интерпретируются как обозначения срезов. Возвращает -1, если sub не найден.

С Документы .

0 голосов
/ 04 февраля 2018

, если x - строка, и вы ищете y, которая также является строкой, в двух случаях: case 1: y существует в x, поэтому x.find (y) = индекс (позиция) y в x. case 2: y не существует, поэтому x.find (y) = -1 это значение y не найдено в x.

0 голосов
/ 28 сентября 2013

Попробуйте это:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...