Примеры поиска строк в Python
Я пытаюсь найти некоторые примеры, но не повезло. Кто-нибудь знает о некоторых примерах в сети? Я хотел бы знать, что он возвращает, когда он не может найти, и как указать от начала до конца, который, я думаю, будет 0, -1.
8 ответов:
можно использовать
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.найти(суб [запустите[, конец]])
Возвращает самый низкий индекс в строке, где находится подстрока 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
честно говоря, это такая ситуация, когда я просто открываю 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]])
возвращает самый низкий индекс в строке, где находится подстрока sub, такой, что sub содержится в диапазоне [start, end]. Необязательные аргументы start и end интерпретируются как в нотации среза. Возвращает -1, если sub не найден.
С документы.
попробуйте это:
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