Функції пошуку та заміни підрядка в рядку
Зміст
- 1. Функція str.count(). Кількість входжень підрядка в заданому діапазоні
- 2. Функція str.find(). Пошук підрядка в рядку
- 3. Функція str.index(). Пошук підрядка в рядку з генеруванням виключення
- 4. Функція str.rfind(). Знайти найбільший індекс входження підрядка в рядок
- 5. Функція str.rindex(). Знайти найбільший індекс входження підрядка в рядок з генеруванням виключення ValueError
- 6. Функція str.replace(). Заміна підрядка в рядку
- Зв’язані теми
Пошук на інших ресурсах:
1. Функція str.count(). Кількість входжень підрядка в заданому діапазоні
Функція str.count() повертає кількість входжень підрядка в заданому діапазоні. Згідно документації Python загальна форма використання функції наступна
n = str.count(substring[, start[, end]])
де
- n – результат, кількість входжень підрядка substring в рядку str які не перекриваються;
- str – рядок, що розглядається;
- substring – підрядок, що може входити в рядок str;
- start, end – відповідно початкова та кінцева позиції (індекси) в рядку str, що визначають діапазон який приймається до уваги (роглядається). Іншими словами значення start, end визначають зріз.
Приклад.
# Функція str.count() - кількість входжень підрядка у заданому діапазоні # 1. Виклик функції з задаванням діапазону s1 = 'abcdef' # заданий рядок n = s1.count('bcd', 0, len(s1)) # n = 1, діапазон 0..5 n = 'ab ab babab'.count('ab', 2, 10) # n = 2 n = 'ab ab babab'.count('ab', 0, 6) # n = 2 # 2. Виклик функції без задавання діапазону s1 = 'Hello world!' n = s1.count('o') # n = 2, к-сть символів 'o' у рядку s1 = 'abcbcd abcd' n = s1.count("bc") # n = 3 # 3. Виклик функції з задаванням початкового значення start s1 = 'abc abc abcd' n = s1.count('abc', 3) # n = 2
⇑
2. Функція str.find(). Пошук підрядка в рядку
Функція find() призначена для пошуку підрядка в рядку. Згідно з документацією Python загальна форма виклику функції наступна:
index = s.find(sub [, start[, end]])
де
- index – цілочисельне значення, що є індексом першого входження підрядка sub в рядку s. Якщо підрядка sub немає в рядку s, то index=-1;
- s – рядок, в якому здійснюється пошук підрядка sub;
- start, end – позиції в рядку s. Ці позиції визначають межі зрізу s[start:end], який становить діапазон, що обробляється. Якщо не задавати параметри start, end, то пошук здійснюється у всьому рядку.
Приклад.
# Функція str.find() - пошук підрядка в рядку # Вихідний рядок, в якому здійснюється пошук s = 'abcde fg hijkl mnop' # 1. Обробка цілого рядка index = s.find('hij') # index = 9 index = s.find('+-=') # index = -1 # 2. Обробка зрізу s[start:end] # береться до уваги частина 'abcde' рядка s index = s.find('hij', 0, 5) # index = -1 index = s.find('cde', 0, 5) # index = 2 index = 'hello world!'.find('wor', 2, len(s)) # index = 6
⇑
3. Функція str.index(). Пошук підрядка в рядку з генеруванням виключення
Функція str.index() здійснює пошук підрядка в рядку. Дана функція працює так само як і функція str.find(), однак, якщо підрядок не знайдено, то викликається виключення ValueError.
Згідно документації Python загальна форма виклику функції наступна:
pos = str.index(substring [, start [, end]])
де
- pos – позиція підрядка substring в рядку str у випадку, якщо підрядок знайдено. Якщо підрядок не знайдено, то викликається виключення ValueError;
- str – рядок, в якому здійснюється пошук;
- start, end – відповідно початкова та кінцева позиції в рядку str, які визначають діапазон пошуку.
Приклад.
# Функція str.index() - пошук підрядка в рядку # Випадок 1. Генерується виключення ValueError: substring not found #t = str.index('sdf', 'abcdef def hj') - виключна ситуація # Випадок 2. Підрядок існує в рядку s = 'abcdef' t = s.index('bc') # t = 1 - позиція знайденого підрядка # Пошук в заданому діапазоні s = 'abc def ghi def' t = s.index('def', 0, len(s)) # t = 4 # Пошук в діапазоні '012' s = '0123456789' t = s.index('012', 0, 3) # t = 0
⇑
4. Функція str.rfind(). Знайти найбільший індекс входження підрядка в рядок
Функція str.rfind() повертає найбільшу позицію (індекс) в рядку заданого підрядка, якщо такий знайдено. Загальна форма використання функції наступна:
position = str.rfind(subs[, start[, end]])
де
- position – шукана позиція (індекс) входження підрядка subs в рядку str. Якщо підрядок subs в рядку str не знайдено, то position=-1;
- str – рядок, в якому здійснюється пошук підрядка subs;
- subs – заданий підрядок;
- start, end – відповідно початковий індекс та кінцевий індекс що визначають зріз в рядку str.
Приклад.
# Функція str.rfind() # 1. Використання без задавання діапазону s1 = 'abc def ab abc' index = s1.rfind('ab') # index = 11 index = s1.rfind('jkl') # index = -1 # 2. Використання з задаванням початку start s1 = '012 345 012' index = s1.rfind('01', 3) # index = 8 # 3. Використання з задаванням початку start і кінця end s1 = 'abc def abc def gh' s2 = 'bc' # підрядок index = s1.rfind(s2, 0, len(s1)) # index = 9 index = s1.rfind(s2, 0, 1) # index = -1, підрядок не знайдено
⇑
5. Функція str.rindex(). Знайти найбільший індекс входження підрядка в рядок з генеруванням виключення ValueError
Функція str.rindex() працює так само як і функція rfind(), тобто повертає найбільшу позицію підрядка в рядку. Різниця між rindex() та rfind() полягає в наступному: якщо підрядок не знайдено в рядку, то генерується виключення ValueError.
Загальна форма використання функції наступна:
position = str.rindex(subs[, start[, end]])
де
- position – шукана позиція (індекс) входження підрядка subs в рядку str. Якщо підрядок subs в рядку str не знайдено, генерується виключення ValueError;
- str – рядок, в якому здійснюється пошук підрядка subs;
- subs – заданий підрядок;
- start, end – відповідно початковий індекс та кінцевий індекс що визначають зріз в рядку str.
Приклад.
# Функція str.index() # 1. Використання без задавання діапазону s1 = 'abc def ab abc' index = s1.rindex('ab') # index = 11 index = str.rindex(s1, ' ') # index = 10, символ пробіл на 10-й позиції # 2. Використання з задаванням початку start s1 = '012 345 012' index = s1.rindex('01', 3) # index = 8 # 3. Використання з задаванням початку start і кінця end s1 = 'abc def abc def gh' s2 = 'bc' # підрядок index = s1.rindex(s2, 0, len(s1)) # index = 9 # Наступний код згенерує виключення # ValueError: substring not found index = s1.rindex(s2, 0, 1)
⇑
6. Функція str.replace(). Заміна підрядка в рядку
Функція str.replace() повертає копію рядка, в якій всі входження підрядка old замінені на new.
Загальна форма використання функції
s1 = s2.replace(old, new[, count])
де
- s1 – результуючий рядок-копія;
- s2 – рядок-оригінал, в якому робляться заміни підрядка old на підрядок new;
- old – підрядок, який має бути замінений іншим підрядком new. Кількість символів в підрядку довільна. Якщо підрядку old не знайдено в рядку s2, тоді функція повертає рядок s2 без будь-яких змін;
- new – підрядок, який замінює підрядок old в рядку s2;
- count – кількість замін які можуть бути здійснені. Якщо count не задано, то заміни здійснюються у всіх можливих входженнях підрядків old в рядку s2.
Приклад.
# Функція str.replace() - заміна підрядка в рядку # 1. Виклик без використання параметру count s1 = 'abcdef' s2 = s1.replace('bc', '111') # s2 = 'a111def' s1 = 'abc abc abc' s2 = s1.replace('bc', '0000') # s2 = 'a0000 a0000 a0000' # Випадок, коли підрядок в рядку не знайдено s2 = str.replace(s1, 'jkl', '111') # s2 = 'abcdef' # 2. Виклик з використанням параметру count s1 = 'abcd abcd abcd' s2 = s1.replace('bcd', '+++', 3) # s2 = 'a+++ a+++ a+++' s2 = s1.replace('bcd', '++++', 2) # s2 = 'a++++ a++++ abcd' s2 = s1.replace('ab', '---', 1) # s2 = '---cd abcd abcd' s2 = s1.replace('abcd', '==', 6) # s2 = '== == =='
⇑
Зв’язані теми
- Функції для роботи з рядками, що визначають особливості рядка
- Функції що визначають та обробляють початок та кінець рядка
- Функції обробки рядка згідно з форматом чи правилом кодування. Стилі форматування
⇑